可以直接这样吗
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
第一种和第二种都可
你这种情况编译器可以本人推导出来,所以可以用第一种,让编译器本人推导参数类型
你这种情况编译器可以本人推导出来,所以可以用第一种,让编译器本人推导参数类型