Это не определено , является ли эта программа правильно сформированной или плохо сформированной (с необходимым диагнозом c, потому что поиск имени не находит pow
). Возможности возникают из утверждения, что один заголовок C ++ может включать в себя другой , который предоставляет разрешение реализации, чтобы дать этой программе одну из двух возможных интерпретаций.
Несколько аналогичные правила ( например , что шаблон должен иметь хотя бы одну допустимую потенциальную специализацию) описаны как 1013 * как вывод программы из строя, диагностика не требуется c, но в этой ситуации эта свобода не распространяется на реализацию (что, возможно, предпочтительнее). Тем не менее, реализация позволяет обрабатывать неправильно сформированную программу произвольным образом 1017 *, если она выдает хотя бы одно сообщение о диагностике c, поэтому это не является абсолютно необоснованным для Сгруппируйте эту ситуацию с истинно неопределенным поведением, хотя на практике симптомы различаются.