提问人:Yiqun Cui 提问时间:11/13/2023 最后编辑:user229044Yiqun Cui 更新时间:11/13/2023 访问量:33
在 C++ 中控制模板的实例化 [复制]
Controlling Instantiations of template in C++ [duplicate]
问:
此语句摘自 C++ Primer Ver5 P675 第 16.1.5 节
使用模板时生成实例化的事实 (§ 16.1.1,第 656 页)意味着相同的实例化可能出现在多个对象文件中。当两个或多个单独编译的源代码时 文件使用相同的模板和相同的模板参数,有 每个文件中该模板的实例化。在大 系统,在多个中实例化同一模板的开销 文件可能会变得很重要。在新标准下,我们可以避免 通过显式实例化开销。
// for example, instantion declaration and definition
extern template class Blob<string>; // declaration
template int compare(const int&, const int&); // definition
所以我的问题是,像矢量这样的 stl 模板是否有必要?
例如,如果我实例化/使用 .cpp 文件中的文件,我是否应该使用 b.cpp 文件中类似的东西来避免开销?vector<int>
extern template vector<int>
答: 暂无答案
评论