给定一个类模板,编译时间太长。在开发和调试过程中,我希望通过将成员函数的定义分离到单独的翻译单元来减少编译时间。只是为了完全专业化(这也是为了减少编译时间(。
在C++中,是否可以通过将类模板完全专业化的成员函数放在单独的TU中来分离它们的定义?
CCD_ 1或CCD_。我无法战胜链接时间错误。
将类模板的显式实例化声明(即extern template class...
(设置为可见(或不可见((再加上删除void A<smth>::f()
(到TU中,在TU中定义了成员函数,也没有什么好处。
显式实例化的语法是错误的(您声明了一个未定义的专门化(,它应该是:
template<typename T>
void A<T>::g()
{
std::cout << __PRETTY_FUNCTION__ << std::endl;
}
template void A<int>::g();
template void A<short>::g();
演示