我们在哪里可以使用匿名结构和联合?
struct
{
int bar;
}; // anonymous struct
union
{
int bar;
}; // anonymous union
我认为我们可以按照以下标准做到这一点:
联合 - C++98、C++03、C++11、C11
结构 - C11
我对不对
关于 C 的陈述是正确的:匿名结构和联合的标准化是相当新的(C11)cfr。海湾合作委员会人。
请注意,您首选的编译器可以启用这些功能作为对当前支持的标准的扩展(例如 GNU C99 扩展)。
然后,检查旧规范,自1998 年以来,C++ 似乎支持匿名联合。
众所周知,C++ 中禁止使用匿名结构,我没有发现任何修改。从Visual Studio 2012 开始,确认 C++ 不支持此功能。