私はコードを持っています:
struct A {
int a;
};
struct B {
int b;
const A a[2];
};
struct C {
int c;
const B b[2];
};
const C test = {0, {}};
int main()
{
return test.c;
}
私は gcc 4.8.2 と 4.9.2 を持っています。次の方法で問題なくコンパイルできます。
g++-4.9 -Wall test.cpp -o test
g++-4.8 -std=c++11 -Wall test.cpp -o test
g++-4.8 -Wall test.cpp -o test
ただし、次のようにコンパイルすることはできません。
g++-4.9 -std=c++11 -Wall test.cpp -o test
コンパイラの出力は次のとおりです。
test.cpp:15:22: error: uninitialized const member ‘B::a’
const C test = {0, {}};
^
test.cpp:15:22: error: uninitialized const member ‘B::a’
これはバグですか、それとも私が何かを理解していないだけですか?