如果有下列一模板函數:
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;
};