N3797 §13.3.3.1 [over.best.ics] говорит:Неявные преобразования последовательности
Последовательность преобразований является неявное преобразование, как это определено в пункте 4 [...]
Однако, пункт 4 определяет следующий список переходов:
- именующих-к-RValue преобразования
- преобразование массив в-указатель преобразования Функции-на-указатель преобразования Квалификационного
- Интегральные акции
- Плавающее продвижение точки
- Интегральных конверсии
- преобразования с плавающей точкой
- плавающим неотъемлемых конверсий
- Преобразование указателей
- Указатель на конверсии членов
- булевых преобразований
- Целое Оценка
преобразования Рассмотрим следующий пример:
#include <iostream>
using namespace std;
struct A
{
operator int()
{
return 42;
}
};
A a;
int b = a; //User-defined conversion sequence applied
int main() { }
До тех пор пока определенное пользователем преобразование не принадлежит к набору стандартных преобразований , в этом примере стандартное преобразование не применяется. Так в чем смысл цитаты, которую я представил?
Спасибо, но это все-таки не совсем понятно. Стандарт определяет четко сформированную последовательность преобразования немного позже как одно из следующих из: _a стандартной последовательности преобразования (13.3.3.1.1) _, _a пользовательской последовательности преобразования (13.3.3.1.2) _ или _an последовательность преобразования многоточия (13.3.3.1.3) _. –
Или вы подразумевали _implicit sequence sequence_ и _sequence of conversion_, появившийся в цитируемой цитате, это немного разные вещи, не так ли? –
@DmitryFucintv Из того, что я понимаю, стандартная последовательность преобразования * - это неявное преобразование. Я пояснил, что «неявное преобразование, определенное в пункте 4», относится к абзацу, в котором говорится о «неявно преобразованном» *. –