函数模板

C++语言 码拜 9年前 (2016-05-08) 1071次浏览
可以直接这样吗

template<typename T1,typename T2>
void test(T1& t1,T2& t2)
{
   // do something
};
void main()
{
   int a = 10;
   float b = 10.0f;
   test(a,b);
}

还是必须这样:

template<typename T1,typename T2>
void test(T1& t1,T2& t2)
{
   // do something
};
void main()
{
   int a = 10;
   float b = 10.0f;
  test<int , float > T(a,b);
}
解决方案

10

第一种就可,你不深感第二种太麻烦了吗,本来就是为了方便使用而设计的

10

可以,模板参数会从调用时各表达式的类型推断出来,只要全部模板参数都能被推断,就可以不写明参数

10

两种都行,各有各的用处。第二种得把那个 T 去掉。

20

第一种和第二种都可
你这种情况编译器可以本人推导出来,所以可以用第一种,让编译器本人推导参数类型

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明函数模板
喜欢 (0)
[1034331897@qq.com]
分享 (0)