Я был удивлен, что этот код на самом деле считается правильным (gcc 4.2.1):
class A {
public:
const int i;
};
class B: public A {
public:
//B() {}
};
так что я могу позволить некоторому атрибуту не инициализироваться. Компилятор жалуется, когда я пытаюсь создать экземпляр A (я, конечно, согласен), но позвольте мне создать экземпляр B без каких-либо предупреждений или ошибок!
Но что еще хуже, компилятор несовместим. Когда я раскомментирую пустой ctor B, компилятор жалуется, когда я создаю экземпляр B … Для меня это похоже на ошибку, правильно или нет? Или я где-то ошибся?
Это действительно ошибка компилятора, сообщается Вот.
Других решений пока нет …