模板函数总结

使用模板函数可以将处理数据的算法进行泛化。泛化的好处是可以将一种算法应用到多种不同的数据上,从而避免相同逻辑的无意义重复,减少代码量。但是对于某些类型应用某个函数模板可能并不合适,此时就可以针对该数据类型对函数模板进行特化处理。

在程序使用函数模板,实际上是使用该模板的实列。在程序编译过程中,编译其根据实参类型推演出具体的模板参数,然后用这些模板参数实列化模板,并将产生的实列编译成具体的机器码。模板实参推演并不要求参数类型完全匹配,如果在实参和行参之间存在左值转换、限定修饰符转换或到基类的转换,那么编译器也可以推演出正确的数据类型。
模板的编译有2种方式,一种是包含式,即模板的定义在头文件中;另一种是分离式,即模板的声明和定义分别放在头文件和源文件中。目前大多数编译器只支持前者,即包含式。
原文地址:https://www.cnblogs.com/tangjunjun/p/11676519.html