代码1:
template<typename T>
T sum(T t1, T t2)
{
return t1 + t2;
}
int sum(int a, int b)
{
return a + b + a;
}
int main()
{
sum(10,20);
return 0;
}
代码2:
template<typename T>
T sum(T t1, T t2)
{
return t1 + t2;
}
template<>
int sum<int>(int a, int b)
{
return a + b + a;
}
int main()
{
sum(10,20);
return 0;
}
这两种情况下的专门求和函数有什么区别吗? 我的编译器对于这两种情况给出相同的输出。 我一直遵循第一种方法。区别只是在于第二种方法一看就知道是一个专门的函数吗?
最佳答案
第一个是模板特化,第二个是函数重载。这在解析规则中很重要 - 将通过专用模板选择完全匹配的重载。
关于c++ - 专用模板函数与不带模板关键字的专用模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32124359/