gpt4 book ai didi

c++ - 调用模板函数的常规方式

转载 作者:行者123 更新时间:2023-11-30 00:39:10 26 4
gpt4 key购买 nike

struct A
{
template <class U>
void f(U)
{

}
};

template <class T>
void f(T t)
{
A a;
a.template f<int>(t);
a.template f<>(t);
a.f<int>(t);
a.f<>(t);
a.f(t);
}

至少在 MSVC2010 下上面的代码可以正常编译。

在调用A.f 的所有方式中,有什么优惠的方式吗?

有什么区别吗?

最佳答案

嗯,a类型为 A ,在此上下文中不是依赖类型。所以 template关键字不是必需的,它仅用于混淆代码——不要使用它。

调用模板而不提供任何参数的版本同样不会改变行为,只会降低代码的可读性——也不要使用它。

在剩下的两个候选人之间,a.f(t)a.f<int>(t) , 在大多数情况下使用第一个,如果编译器无法推断类型则使用第二个。

关于c++ - 调用模板函数的常规方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com