C11 支持匿名结构,如下所示:
struct Foo
{
struct
{
size_t x, y;
};
};
struct Foo f;
f.x = 17;
f.y = 42;
基本上,此类 a 的成员struct
被视为封闭的成员struct
或union
(递归地,如果封闭结构本身是匿名的)。
C++11 不包括匿名结构的理由是什么?当然,它们只是非常有用(主要是在联合内部,以消除为 输入标识符struct
)。但它们似乎是对规范的一个足够明显的补充(并且已经由许多编译器实现),肯定必须讨论它们,至少要保持与 C11 标准的兼容性。那么为什么不添加它们呢?