函数模板可以为不同的类型的参数生成不同类型的函数版本,调用函数模板的时候,编译器通常会根据函数实参来推断模板实参
但同时存在模板函数和普通函数时,如果函数实参符合普通函数的形参,这时候会直接调用普通函数,而不需要模板函数生成特定实例
当然我们也可以显示地指明我们想要调用的是模板函数
//测试函数模板
#include<iostream>
using namespace std;;
// template<int SIZE>
template<typename T>
T sum(T a,T b)
{
cout<<"template function"<<endl;
return a+b;
}
int sum(int a,int b)
{
cout<<"function"<<endl;
return a+b;
}
int main()
{
sum(1,2);
sum<int>(1,2);
return 0;
}