普通函数和函数模板的区别
1.普通函数会发生隐式类型转换
2.函数模板自动类型推导不发生隐式类型转换
3.函数模板显示指定类型发生隐式类型转换
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 template<class T> 5 T add(T a,T b) 6 { 7 return a + b; 8 } 9 10 int padd(int a,int b) 11 { 12 return a + b; 13 } 14 15 //普通函数会发生隐式类型转换 16 //函数模板自动类型推导不发生隐式类型转换 17 //函数模板显示指定类型发生隐式类型转换 18 int main() 19 { 20 int a = 1,b = 2; 21 char c = 'a'; 22 cout << padd(a , b) << endl; 23 cout << padd(a , c) << endl; 24 cout << add(a,b) << endl; 25 //cout << add(a,c) << endl;//函数模板自动类型推导不发生隐式类型转换 26 27 cout << add<int>(a,b) << endl; 28 cout << add<int>(a,c) << endl; 29 }