Code Bye

问一下模板函数重载的匹配原则

普通函数重载调用时,有完全匹配,提升转换,标准转换,用户自定义转换4个匹配等级的,问一下重载的函数模板在调用的过程当中有没有相似这样的匹配等级?
另外,假如存在函数“显式模板特化”,是不是存在这样的转换匹配?
解决方案

15

重载决议的过程是一样的。只不过函数模板在重载决议之前还有个模板参数推导的过程,模板参数推导考虑的隐式转换的种类比较少
模板特化不参与重载决议。假如重载决议最后选中使用这个函数模板,并且对于给定模板参数,这个函数模板存在模板特化,那么就会使用这个模板特化

5

特化的函数优先级没有原函数强,这点与类的特化恰恰相反。

5

模板参数的推导不会进行类型转换

15

第一  模板函数不参与重载解析,所以特化的函数也是不参与重载解析的。
第二 普通函数的优先级高于模板函数。
第三 模板函数不存在转换匹配

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问一下模板函数重载的匹配原则