简短的问题,这些定义是否相同?
1
template<class T1>
template<class T2>
void function(T1 *a, T2*b);
2
template<class T1,class T2>
void function(T1 *a, T2*b);
答案 0 :(得分:2)
不,他们不一样。第一种情况不会编译为自由函数(http://www.boxofficemojo.com/yearly/chart/?yr=2013&p=.htm)。通常情况下,当你有一个模板类并且你有一个带有另一个模板参数的函数时,你会做第一种情况
toLowerCase
你的第二个例子就像一个带有两个模板参数的函数一样好。