C++模版使用详解
- 2015-03-06 20:44:00
- admin
- 原创 2900
一、C++模版使用详解
1、C++模板其实就是一个代码生成器,实例化就是代码生成的过程;
2、模版偏特化对某些类型提供额外模版,因为通用模版无法满足需求;
3、模版偏特化示例:cpp_template.cpp
常见问题1:模板未定义,不能实例化
1、一般是因为把模板申明放在头文件,模板定义放在实现文件引起的;
2、模板实例化要进行代码生成,查找不到模板定义,将无法生成代码;
常见问题2:编译速度缓慢,目标文件体积膨胀
1、尽量少用模板,从而减少代码生成量;
2、显示实例化,显示实例化只生成一次代码;
template <class T>
T add(T a, T b) { return a + b; };
隐式实例化:
add<int>(1, 2);//需要实例化
add<int>(3, 4);//需要实例化
显示实例化:
extern template int add<int>(int, int);//显示实例化申明
add<int>(1, 2);//不需要实例化
add<int>(3, 4);//不需要实例化
template int add<int>(int, int);//在此实例化
发表评论