如何解决重载函数模板
以下示例摘自《C++ 模板 - 完整指南》一书:
template<typename T1,typename T2>
auto max (T1 a,T2 b)
{
return b < a ? a : b;
}
template<typename RT,typename T1,typename T2>
RT max (T1 a,T2 b)
{
return b < a ? a : b;
}
然后是:
现在,我们可以调用max(),例如,如下:
auto a = ::max(4,7.2); // uses first template
auto b = ::max<long double>(7.2,4); // uses second template
但是,在调用时:
auto c = ::max<int>(4,7.2); // ERROR: both function templates match
两个模板匹配,导致重载解析过程 通常选择 none 并导致歧义错误。
我知道两个模板都匹配 "c" (::max
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。