最小限のコード例:
struct B {
union U {
struct S {} s;
int i = 100;
}
u;
};
a を宣言するとB obj;
、 のobj.u.i
代わりにガベージ値が割り当てられます100
。ここでデモを参照してください。(ガベージ値は最適化フラグなどによって異なります)。
ユニオンで動作するはずの「クラス内初期化」機能です。
- はいの場合、正しい構文は何ですか? それとも、これは g++ のバグですか?
- そうでない場合はどうなり
int i = 100;
ますか?