C++模版使用详解

2015-03-06 20:44:00
admin
原创 2900
摘要:C++模版使用详解

一、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);//在此实例化

发表评论
评论通过审核之后才会显示。