C11支持匿名結構,如下所示:爲什麼C++ 11不支持匿名結構,而C11呢?
struct Foo
{
struct
{
size_t x, y;
};
};
struct Foo f;
f.x = 17;
f.y = 42;
基本上,這樣的struct
的成員就好像它們是成員處理的包圍struct
或union
(遞歸,如果封閉結構本身就是匿名)。
什麼是對C++ 11不是也包括匿名結構的合理性?他們只是不尋常的有用(主要是內部的工會,以消除對struct
標識符的打字),肯定。但他們似乎明顯不足除了規範(並已被許多編譯器實現的一個)當然,他們必須已討論,至少是保持與C11標準的兼容性。那麼他們爲什麼不添加?
我不同意投票,這個問題是沒有建設性。較軟的問題也很好。 – GManNickG 2011-12-24 03:44:29
__Practically speaking__大多數C++ 11編譯器也支持匿名結構。我已經在MSVC++(從前)和Apple的llvm C++ 11編譯器中使用過它們。 – bobobobo 2012-10-15 19:17:17
MinGW也支持匿名結構/聯合。 – 2015-02-14 05:18:24