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
你是什么意思? –