我有几个模板的成员函数的一类,我想在几个源文件分发到加快编译时间。 (模板是实施细节,并且不旨在类以外的地方使用,因此它们在源不头定义。)

我怎么会去分裂以这样的方式这些模板,我不会得到链接错误?如果我使用源文件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);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top