1、如果函数模板和普通函数都可以实现,优先调用普通函数
2、可以通过空模板参数列表来强调调用函数模板
3、函数模板也可以发生重载
4、如果函数模板可以发生更好的匹配,优先调用函数模板
#include <iostream>
using namespace std;
int my_add (int a, int b);
// {
// cout << "normal function" << endl;
// return a + b;
// }
template <class T>
T my_add (T a, T b)
{
cout << "template function " << endl;
return a + b;
}
template <class T>
T my_add (T a, T b, T c)
{
cout << "template function " << endl;
return a + b;
}
int main ()
{
int a = 10;
int b = 20;
my_add<>(a, b);
my_add<int>(a, b);
my_add(a, b, 100);
//优先调用模板函数
char c = 'a';
char d = 'b';
my_add(c, d);
}