在一个联合体内的不同匿名联合中具有相同名称的字段合法吗?
union Foo
{
union
{
int bar;
};
union
{
int bar;
};
};
此代码无法通过GCC编译,但在MSVC中可以正常工作。
答案 0 :(得分:8)
这是C ++标准所不允许的。任何编译该代码的编译器都是不合格的。
请参见10.4.1 / 1:
匿名联合会成员的姓名应与 匿名范围内任何其他实体的名称 声明了联合。