このコードはコンパイルに失敗します。示されたポイントで「Expected { or ,」が表示されます。(Xcode 5 であるため、かなり完全な C++11 コンパイラです。)
コンストラクター初期化子リストでネストされた共用体のメンバーを初期化する方法はありますか、それともコンストラクター本体でそれを行う必要がありますか?
class Foo
{
public:
Foo(): m_bar.m_x(123) { }
private: // ^ error here
union
{
union
{
int m_x;
float m_y;
}
m_pod;
std::string m_name;
};
};