Standard conversion sequences are categorized in one of three ranks.
The ranks are listed in order from best to worst:
Exact match: This rank includes the following conversions:
Identity conversions
Lvalue-to-rvalue conversions
Array-to-pointer conversions
Qualification conversions
Promotion: This rank includes integral and floating point promotions.
Conversion: This rank includes the following conversions:
Integral and floating-point conversions
Floating-integral conversions
Pointer conversions
Pointer-to-member conversions
Boolean conversions
The compiler ranks a standard conversion sequence by its worst-ranked
standard conversion. For example, if a standard conversion sequence
has a floating-point conversion, then that sequence has conversion
rank.