C11 は、次のような無名構造をサポートしています。
struct Foo
{
struct
{
size_t x, y;
};
};
struct Foo f;
f.x = 17;
f.y = 42;
基本的に、そのような a のメンバーは、囲んでいるorstruct
のメンバーであるかのように扱われます(囲んでいる構造自体が無名の場合、再帰的に)。struct
union
C++11 が無名構造を含まない理由は何ですか? struct
確かに、それらはめったに役に立たないだけです(ほとんどの場合、共用体の中で、 の識別子の入力をなくすためです)。しかし、それらは仕様 (および多くのコンパイラーによって既に実装されているもの) への明らかな追加であるように思われるため、少なくとも C11 標準との互換性を維持するために、それらは確かに議論されたに違いありません。では、なぜ追加されなかったのでしょうか。