Являются ли «анонимные структуры» стандартными? И действительно, что они?

MSDNсчитает что анонимные структуры нестандартны в C ++:

Расширение Microsoft C позволяет объявлять структурную переменную в другой структуре, не называя ее имени. Эти вложенные структуры называются анонимными структурами. C ++ не допускает анонимных структур.

Вы можете получить доступ к членам анонимной структуры, как если бы они были членами в содержащей структуре.

@ K-Балло соглашается с тем,.

Мне сказали, что эта функция не обязательно такая же, как просто создание безымянной структуры, но я не вижу различия в терминах стандартной формулировки.

C ++ 11 говорит:

[C++11: 9/1]: [..] A класса спецификатор чьякласс-руководитель опускает-Имя-руководитель класса определяет безымянный класс.

и обеспечивает полную грамматическую конструкцию для определения типа, в котором отсутствует имя.

C ++ 03 не имеет такой явной формулировки, но аналогичным образом указывает, чтоidentifier в определении типа является необязательным, и делает ссылку на «безымянные классы» в9.4.2/5 а также3.5/4.

Так что MSDN не так, и все это совершенно стандартно?Или есть какая-то тонкость, которую я пропускаю между «безымянными структурами / классами» и той же самой при использовании в качестве членов, которая препятствует тому, чтобы они были покрыты этой функциональностью C ++ 03 / C ++ 11?Я пропускаю какое-то фундаментальное различие между «безымянной структурой» и «анонимной структурой»? Они похожи на синонимы для меня.

Ответы на вопрос(3)

Ваш ответ на вопрос