跨源文件模板实例化和使用
-
26-09-2019 - |
题
我有几个模板的成员函数的一类,我想在几个源文件分发到加快编译时间。 (模板是实施细节,并且不旨在类以外的地方使用,因此它们在源不头定义。)
我怎么会去分裂以这样的方式这些模板,我不会得到链接错误?如果我使用源文件B中定义的模板具有源文件A,我如何确保模板的适当实例是由编译器构造
解决方案
我不能回答好它比C ++ FAQ:点击 https://isocpp.org/wiki/faq/templates#templates- DEFN-VS-DECL
其他提示
只要不宣布这些模板的项目,如在头文件中的类的一部分。然后,只在源文件中定义的模板。例如:
MyClass.hpp
class MyClass
{
public:
void SomePublicMethod() const;
};
MyClass.cpp
template<class T>
void SomethingWithT(T myVal)
{
// ...
}
void MyClass::SomePublicMethod() const
{
SomethingWithT(42);
}
不隶属于 StackOverflow