Каждому типу стандартной последовательности преобразования назначается один из трех ранги:
- Точное соответствие: преобразование не требуется, преобразование lvalue в rvalue, преобразование квалификации, преобразование указателя функции (начиная с C++17), определяемое пользователем преобразование типа класса в тот же класс
- Продвижение: целочисленное преобразование, продвижение с плавающей запятой
- Преобразование: целочисленное преобразование, преобразование с плавающей запятой, преобразование с плавающей запятой, преобразование указателя, преобразование указателя в член, логическое преобразование, определяемое пользователем преобразование производного класса в его базовый класс
Так как же тогда такое может быть? стандартное преобразование может включать в себя преобразование, определяемое пользователем? А каков пример пользовательского преобразования типа класса в тот же класс или пользовательского преобразования класса в его базу? Например, пользовательский конструктор копирования считается стандартным преобразованием и поэтому может быть соединен с настоящим пользовательским преобразованием в той же последовательности неявного преобразования? Может ли кто-нибудь привести простой пример того, как пользовательское преобразование рассматривается как стандартное преобразование, подобное этому, или объяснить, почему я неправильно читаю цитируемый текст?
Подробнее здесь: https://stackoverflow.com/questions/790 ... conversion