C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 在名称相同的不同功能模板之间重载优先级大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
抱歉标题不清楚,如果找到更好的标题,请随时编辑.一个相关的主题已在 @L_696_4@深入讨论,
我找不到我的问题的答案.

我的代码是:

template<typename T>
void f(T t){std::cout << "Template 1" << std::endl;} // template 1

template<typename T,typename B>
void f(T t){std::cout << "Template 2" << std::endl;} // template 2

int main () {
   f(1);  // line 1,template 1 will be called
   f<int>(1);  // template 1 will be called
   f<int,int>(1);  // template 2 will be called
}

在第1行调用模板1函数的可能原因是什么?它在规范中是否定义明确?

在第1行,我认为编译器应该给出“模糊过载”错误.

解决方法

无法推导出B(没有参数具有类型B),因此模板1是唯一可能的超载.

大佬总结

以上是大佬教程为你收集整理的c – 在名称相同的不同功能模板之间重载优先级全部内容,希望文章能够帮你解决c – 在名称相同的不同功能模板之间重载优先级所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。