如果有下列一模板函数:
template<typename T>
T fun(T a)
{
return a;
};
则在使用时有两种方法:// 方法一
fun<int>(5);
// 方法二
fun(5);
而如果是这样的话
template<typename T,typename TT>
T fun(TT a)
{
return a;
};
是可以用
fun<int,int>(5);
或者
fun<int>(5)
但是如果想用下面这种省略参数的方法,
模板参数的模板列表的第一个参数必须是返回值。
也就是下面这种形式的模板函数在使用的时候是不能省略参数的。
template<typename TT,typename T>
T fun(TT a)
{
return a;
};