C++模板编程->分辨重载优先级
2014-04-06 10:58
267 查看
准则一:
两候选函数 一方其形参表各类型 与 调用实参列表各类型更匹配,则优先。
准则二:
在准则一无法分辨的情况下,一方函数模板实例而另一方为非模板函数,则取非模板函数。
准则三:
在前两个准则都无法分辨的情况下,取更为“特殊”的一方而淘汰另一方。
代码如下:
两候选函数 一方其形参表各类型 与 调用实参列表各类型更匹配,则优先。
准则二:
在准则一无法分辨的情况下,一方函数模板实例而另一方为非模板函数,则取非模板函数。
准则三:
在前两个准则都无法分辨的情况下,取更为“特殊”的一方而淘汰另一方。
代码如下:
template<typename T> void func(T v) { cout<<"template<typename T>"<<v<<endl; } /* template< > void func(float v) { cout<<"template<>"<<v<<endl; } */ void func(float v) { cout<<"void func float"<<v<<endl; } void func(int v) { cout<<"void func int"<<v<<endl; } int main(int argc, char const *argv[]) { func(1); func(1.0); func(1.f); func<>(1.f); system("pause"); return 0; }
相关文章推荐
- C++模板编程->分辨重载优先级
- C++模板编程->嵌套实现元组
- C++模板编程->嵌套实现元组
- C++模板编程->元编程(1)
- C++模板编程->整数模板参数
- C++模板编程->元编程(1)
- C++模板编程->整数模板参数
- C++模板编程->函数指针模板参数
- C++模板编程->函数指针模板参数
- C++模板编程->指针及引用模板参数
- C++模板编程->指针及引用模板参数
- C++模板编程->模板判断逻辑
- C++模板编程->模板判断逻辑
- C++模板编程->模板型模板参数
- C++模板编程->成员函数指针模板参数
- C++模板编程->模板型模板参数
- C++模板编程->成员函数指针模板参数
- 模板类中操作符重载问题("<<"和">>"重载)[c++]
- <转>详解C++的模板中typename关键字的用法
- C++学习笔记之模板(1)——从函数重载到函数模板