0
我知道爲什麼模板的實現應該轉到標題的原因。這個問題是關於模板專業化的。據我所知,這種設置應該工作。如何將模板構造函數特化移動到cpp文件?
頭:
template<class T>
class Foo {
public:
Foo(T value) {
// not specialized
}
};
template<> Foo<double>::Foo(double value);
CPP:
// specialization for float
template<>
Foo<double>::Foo(double value) {
// special version for double
}
用法:
Foo<double>(0);
但是,我得到一個編譯錯誤:
error LNK2019: unresolved external symbol "public: __thiscall Foo<double>::Foo<double>(double)" ([email protected]@@[email protected]@Z) referenced in function _wmain
我在做什麼錯了?是否有另一種方法將專門的構造函數移動到實現文件中?
*我在做什麼錯?*在創建可執行文件時,您很可能不會編譯和鏈接.cpp文件中的代碼。 –
感謝您的提示,但該文件包含在二進制文件中。 – lyron
你是什麼意思? –