Являются ли «анонимные структуры» стандартными? И действительно, что они?
MSDNсчитает что анонимные структуры нестандартны в C ++:
Расширение Microsoft C позволяет объявлять структурную переменную в другой структуре, не называя ее имени. Эти вложенные структуры называются анонимными структурами. C ++ не допускает анонимных структур.
Вы можете получить доступ к членам анонимной структуры, как если бы они были членами в содержащей структуре.
Мне сказали, что эта функция неТочно так же, как просто создание безымянной структуры, но я могуне вижу различия с точки зрения стандартной формулировки.
C ++ 11 говорит:
[C++11: 9/1]
[..] Aкласса спецификатор чьякласс-руководитель опускает-Имя-руководитель класса определяет безымянный класс.
и обеспечивает полную грамматическую конструкцию для определения типа, в котором отсутствует имя.
C ++ 03 не имеет такой явной формулировки, но аналогичным образом указывает, чтоidentifier
в определении типа не является обязательным, и делает ссылку на "безымянные уроки в9.4.2/5
а также .3.5/4