技术栈

模板和元编程

fpcc
2 天前
c++·模板和元编程
模板编程—C++不支持模板分离编译分析模板的编译相对于普通编程的编译,要复杂不少。比如一个模板函数,在不同的编译单元被include,那么会生成多个相同签名的函数,这就需要编译器后期进行相关的去重处理。而且这种代码多了,编译时,相关的编译部分体积也会变大,也就是常说的代码膨胀。另外,还需要处理ADL和CTAD(前面都分析过)等相关的细节,直到链接时对相关函数的具体定位(两阶段名称查找)等等,都相较于非模板代码编译需要更多的步骤和处理过程。 这里重点分析一下,为什么在模板编程中见到的模板代码都定义在头文件中,而不是象普通的代码声明在头文件而定义
我是有底线的