第二章 语言可用性的强化——模板
第二章 语言可用性的强化——模板
C++ 的模板被称作 C++ 的黑魔法,甚至可以独立作为一门新的语言来进行使用。
模板的哲学在于一切能够在编译期处理的问题全部都丢到编译期进行处理,仅在运行时处理那些最核心的动态服务,进而大幅度优化性能。
外部模板
传统 C++ 中,模板只有在使用时才会被编译器实例化。只要在每个编译单元(文件)中遇到了被完整定义的模板,都会实例化。这就产生了重复实例化而导致编译时间增加。并且,我们没有办法通知编译器不要触发模板的实例化。
C++11 引入了外部模板,扩充了原来的强制编译器在特性位置实例化模板的语法,使我们能够显示的通知编译器何时进行模板的实例化。如下代码:
template class vector
extern template class vector
尖括号">"
在传统C+
共有 0 条评论