Table 14
summarizes the conversions defined in [conv] and
partitions them into four disjoint categories: Lvalue Transformation,
Qualification Adjustment, Promotion, and Conversion.

[ Note

: *end note*

]These categories are orthogonal with respect to value category,
cv-qualification, and data representation: the Lvalue Transformations
do not change the cv-qualification or data
representation of the type; the Qualification Adjustments do not
change the value category or data representation of the type; and
the Promotions and Conversions do not change the
value category or cv-qualification of the type.

— [ Note

: *end note*

]As described in [conv],
a standard conversion sequence either is the Identity conversion
by itself (that is, no conversion) or consists of one to three
conversions from the other
four categories.

If there are two or more conversions in the sequence, the
conversions are applied in the canonical order:
**Lvalue Transformation**,
**Promotion**
or
**Conversion**,
**Qualification Adjustment**.

— These are used
to rank standard conversion sequences.

The rank of a conversion sequence is determined by considering the
rank of each conversion in the sequence and the rank of any reference
binding.

If any of those has Conversion rank, the
sequence has Conversion rank; otherwise, if any of those has Promotion rank,
the sequence has Promotion rank; otherwise, the sequence has Exact
Match rank.

Table 14 — Conversions

Conversion | Category | Rank | Subclause |

No conversions required | Identity | ||

Lvalue-to-rvalue conversion | |||

Array-to-pointer conversion | Lvalue Transformation | ||

Function-to-pointer conversion | Exact Match | ||

Qualification conversions | |||

Function pointer conversion | Qualification Adjustment | ||

Integral promotions | |||

Floating-point promotion | Promotion | Promotion | |

Integral conversions | |||

Floating-point conversions | |||

Floating-integral conversions | |||

Pointer conversions | Conversion | Conversion | |

Pointer-to-member conversions | |||

Boolean conversions |