本章介绍函数模板。函数模板是代表一类函数的函数。
1.1第一个函数模板
函数模板提供能被调用不同类型的函数行为。一方面,函数模板代表一类函数的函数。代理大部分普通函数,除了函数的某些元素是左潜,一些元素是参数化,除此之外,开始一个简单的示例:
1.1.1定义模板
下面的函数模板返回两个值的最大值:
template<typename T> T max(T a, T b) { return a>b?a:b; }
模板定义一系列函数,通过函数参数a和b返回两个值的最大值。参数类型是左开模板参数,这个示例的参数中,模板参数必须声明下面的语义:
template <comma-separated-list-of-paraments>
在这个示例中,参数列表是typename T,不是采用<>作为括号;我们引用尖括号。关键字typename作为一个类型参数。它作为一个C++编程模板参数,其他参数亦可采用,之后讨论这种情况。
类型参数是T,可以使用任何标识符作为参数名,使用T转换。类型参数