c – 如何使用显式模板实例化来减少编译时间?

它建议使用显式模板实例化来减少编译时间.我想知道该怎么做.例如

// a.h
template<typename T> class A {...};
template class A<int>; // explicit template instantiation  to reduce compilation time

但是在包含a.h的每个翻译单元中,似乎A< int>将被编译.编译时间不会减少.如何使用显式模板实例化来减少编译时间?

解决方法:

如果您知道您的模板仅用于某些类型,
我们称之为T1,T2,你可以将实现移动到源文件,
像普通班一样.

//foo.hpp
template<typename T>
struct Foo {
    void f();
};

//foo.cpp
template<typename T>
void Foo<T>::f() {}

template class Foo<T1>;
template class Foo<T2>;
上一篇:Vim无法在OS X上使用python进行编译


下一篇:c – 在编译时更改字符串宏