16 Overloading [over]

16.3 Overload resolution [over.match]

16.3.3 Best viable function [over.match.best]

16.3.3.1 Implicit conversion sequences [over.best.ics]

16.3.3.1.1 Standard conversion sequences [over.ics.scs]

Таблица 13 суммирует преобразования, определенные в пункте, [conv] и разбивает их на четыре непересекающиеся категории: преобразование Lvalue, корректировка квалификации, продвижение и преобразование. [ Note: Эти категории ортогональны по отношению к категории значения, cv-квалификации и представлению данных: преобразования Lvalue не изменяют cv-квалификацию или представление данных типа; Квалификационные корректировки не изменяют категорию значения или представление данных типа; и «Акции» и «Конверсии» не изменяют категорию значения или CV-квалификацию типа. ]end note

[ Note: Как описано в пункте [conv], стандартная последовательность преобразования представляет собой либо само преобразование идентификатора (то есть без преобразования), либо состоит из одного-трех преобразований из других четырех категорий. Если в последовательности есть два или более преобразований, преобразования применяются в каноническом порядке: преобразование Lvalue , продвижение или преобразование , корректировка квалификации . ]end note

Каждой конверсии в таблице 13 также соответствует ранг (точное соответствие, продвижение или конверсия). К ним привыкли rank standard conversion sequences. Ранг последовательности преобразования определяется путем рассмотрения ранга каждого преобразования в последовательности и ранга любого из них reference binding. Если любой из них имеет ранг конверсии, последовательность имеет ранг конверсии; в противном случае, если какой-либо из них имеет рейтинг повышения, последовательность имеет рейтинг повышения; в противном случае последовательность имеет ранг точного соответствия.

Таблица 13 - Конверсии
Преобразование Категория Классифицировать Подпункт
Никаких преобразований не требуется Личность
Lvalue-to-rvalue преобразование [conv.lval]
Преобразование массива в указатель Преобразование Lvalue [conv.array]
Преобразование функции в указатель Точное совпадение [conv.func]
Квалификационные преобразования [conv.qual]
Преобразование указателя на функцию Квалификационная корректировка [conv.fctptr]
Интегральные акции [conv.prom]
Продвижение с плавающей запятой Продвижение Продвижение [conv.fpprom]
Интегральные преобразования [conv.integral]
Преобразования с плавающей запятой [conv.double]
Преобразования с плавающей запятой [conv.fpint]
Преобразования указателей Преобразование Преобразование [conv.ptr]
Указатель на преобразования членов [conv.mem]
Логические преобразования [conv.bool]