为了确定最佳匹配,实参到形参类型的转换可划分为四级:
- exact match ,实参与形参类型相同
- promotion
- standard conversion
- class-type conversion (通过类类型转换)
其中,前3个在C++标准中又通称为标准转换序列(C++标准 13.3.3.1.1)
转换(Conversion) | 类别(Category) | 级别(Rank) |
无需转换 | Identity | Exact Match |
左值到右值转换 | Lvalue Transformation | |
数组到指针转换 | ||
函数到指针转换 | ||
限定符(Qualification)转换) | Qualification Adjustment | |
整数提升 | Promotion | Promotion |
浮点数提升 | ||
整数转换 | Conversion | Conversion |
浮点数转换 | ||
浮点数-整数转换 | ||
指针转换 | ||
指针到成员转换 | ||
布尔转换 |
C++ Primer 中说:
-
内置类型的提升和转换可能会使函数匹配传声意想不到的结果,但幸运的是,设计良好的系统很少会...
显然,这儿的 bug 是api设计问题造成...
转自: http://blog.csdn.net/dbzhang800/article/details/6675415