Какие стандарты разрешают анонимные структуры и объединения в C и C ++?

Где мы можем использовать анонимные структуры и союзы?

struct
{
int bar;
}; // anonymous struct

union
{
int bar;
}; // anonymous union

Я думаю, что мы можем сделать это в следующих стандартах:

  • союзы — C ++ 98, C ++ 03, C ++ 11, C11

  • структуры — C11

Прав я или нет

7

Решение

Утверждение о C верно: стандартизация анонимных структур и союзов довольно нова (C11) ЧФР. GCC человек.

Обратите внимание, что ваш предпочтительный компилятор может включить эти функции как расширения текущего поддерживаемого стандарта (например, расширения GNU C99).

Затем, проверяя старые спецификации, кажется, что анонимные союзы поддерживаются в C ++, так как 1998.

Общеизвестно, что анонимные структуры запрещены в C ++, и я не нашел никаких изменений. По состоянию на Визуальная студия 2012, Подтверждено, что C ++ не поддерживает эту функцию.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]