模板一共有三种类型:
1.第一种包含模型:包含模型是讲模板的定义和声明都放在头文件里(注:一般我们写的代码是将声明放在头文件里,实现放在cpp里,防止产生两份实现代码)
缺点:包含模型会增加代码的量。如果在不同文件里有两个相同的类型调用则会产生两份相同实现,C++编译器可以自己处理这个问题。
2.手动实例化
示例:template void print_type<double>(double const& x);
缺点:造成混乱
3.分离模型
分离模型是在声明和定义处都使用export关键字即可,用的较少。