У меня есть код:
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’
Является ли это ошибкой, или я просто ничего не понимаю?