使用 extern 模板避免模板实例化
模板实例化是 C 编程中至关重要的一步,在编译时创建特定的模板实例。在某些场景下,有必要控制模板实例化以优化编译时间并避免冗余定义。这就是 extern template 关键字发挥作用的地方。
函数模板的 Extern 模板
与函数模板一起使用时,extern 模板指示编译器不要实例化指定的当前翻译单元内的模板。它表明该模板的实例将在程序的其他地方找到。这在多个源文件使用相同参数实例化同一模板的情况下特别有用,从而导致编译器必须丢弃多个定义。
示例:
考虑以下代码片段:
在这种情况下,source2.cpp 中的 extern 模板通知编译器f
类模板的外部模板
与函数模板类似,也可以使用 extern 模板与类模板。这样做是为了避免使用相同参数多次实例化模板类。
示例:
这里,source2.cpp 中的 extern 模板确保MyClass
使用 extern 模板的指南
以上是`extern template` 如何防止 C 中的冗余模板实例化?的详细内容。更多信息请关注PHP中文网其他相关文章!