-4
之外定義
我知道必須在同一個文件中聲明和定義模板。但是,爲什麼我不能:爲什麼模板必須在類
#ifndef guard
#define guard
template<typename T>
class Test{
void method(){
}
};
#endif
而且它的原因編譯器錯誤(不直接,但在兩個不同的地方 - 例如在main(),並在任何類別字段導致錯誤instatantiation模板測試
。它必須在外面類中定義(它不會導致錯誤,如這裏)
#ifndef guard
#define guard
template<typename T>
class Test{
void method();
};
#endif
template<typename T>
void Test<T>::method(){}
爲什麼?
什麼是錯誤信息? – davmac
你完全可以在類中定義類模板的成員函數。請提供您正在收到的實際編譯錯誤的[mcve]。 – Barry
我不知道如何創建與第二個消失的第一個片段的錯誤 – user463035818