Где мы можем использовать анонимные структуры и союзы?
struct
{
int bar;
}; // anonymous struct
union
{
int bar;
}; // anonymous union
Я думаю, что мы можем сделать это в следующих стандартах:
союзы — C ++ 98, C ++ 03, C ++ 11, C11
структуры — C11
Прав я или нет
Утверждение о C верно: стандартизация анонимных структур и союзов довольно нова (C11) ЧФР. GCC человек.
Обратите внимание, что ваш предпочтительный компилятор может включить эти функции как расширения текущего поддерживаемого стандарта (например, расширения GNU C99).
Затем, проверяя старые спецификации, кажется, что анонимные союзы поддерживаются в C ++, так как 1998.
Общеизвестно, что анонимные структуры запрещены в C ++, и я не нашел никаких изменений. По состоянию на Визуальная студия 2012, Подтверждено, что C ++ не поддерживает эту функцию.
Других решений пока нет …