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

标签 c++ templates compilation

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

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

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

最佳答案

在头部声明实例化:

extern template class A<int>;

并在一个源文件中定义它:

template class A<int>;

现在它只会被实例化一次,而不是在每个翻译单元中,这可能会加快速度。

关于c++ - 如何使用显式模板实例化来减少编译时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247711/

相关文章:

python - 覆盖 Django 的重置密码电子邮件模板

php - PHP-为MSSQL编译FreeTSD扩展

c++ - 复制赋值运算符定义

c++ - 我无法在 C++ 中使用模板进行编译

c++ - 为什么只能在头文件中实现模板?

c++ - 如何确保 C++ 类模板中非静态数据成员的正确初始化

c++ - 使用静态库编译错误可执行文件

compilation - 即时 (JIT) 编译器有什么作用?

c++ - 将文本文件解析为对象时的错误处理

c++ - 不存在从 "test *"转换为 "test"的合适构造函数,构造函数,