During the step of function overload resolution, the compiler identifies and ranks the conversion that can apply to each argument in a function call to convert to the type of the corresponding parameter in each viable function.
possible minor converion in exact match
- Lvalue-to-rvalue converion
- Array to pointer conversion
- Function to pointer conversion
- Qualification conversion
below the exact match, it is the pomotion, and actually the rand of the conversion (inlcuding the exact match is as follow):
- Exact match
- Promotion (int -> float -> double)
- Standard Conversion (double -> float -> int)
- User defined conversion
why the rank is so important, it is because during the overload function selection, there are rules for better ranked conversion.
- The conversion applied to the arguments are no worse than the conversion necessary to call any other viable function.
- The conversion on some arguments are better than the conversions necesary for the ame arguments when calling the other viable functions.
本文探讨了函数重载解析过程中编译器如何确定和排名转换,包括精确匹配、提升、标准转换及用户定义转换等,解释了为何排名对于选择最优重载函数至关重要。
4836

被折叠的 条评论
为什么被折叠?



