函数模板定义如下:
template<模板参数表>
返回类型 函数名(形式参数表)
{
//函数体
}
<模板参数表>(template parameter list)尖括号中不能为空,参数可以有多个,用逗号分开。
模板类型参数(template type parameter)代表一种类型,由关键字 class 或 typename(建议用 typename )后加一个标识符构成,在这里两个关键字的意义相同,它们表示后面的参数名代表一个潜在的内置或用户设计的类型。函数模板根据一组实际类型或(和)值构造出独立的函数的过程通常是隐式发生的,称为模板实参推演(template
argument deduction)。
编译时根据传的实参来推演出形参类型。通过模板函数生成处理具体类型数据的函数。
template<typename Type>
const Type& Max_My(const Type& a