Стандарт С++ содержит полуизвестный пример "удивительного" поиска имен в разделе 3.3.2 "Точка декларации":
int x = x;
Инициализирует x
с самим собой, который (будучи примитивным типом) неинициализирован и, следовательно, имеет неопределенное значение (если он является автоматической переменной).
Действительно ли это поведение undefined?
В соответствии с 4.1 "преобразованием Lvalue-to-rvalue" поведение undefined выполняет преобразование lvalue-to-rvalue по неинициализированному значению. Соответствует ли правое x
такое преобразование? Если это так, действительно ли пример имел поведение undefined?