Если я попытаюсь скомпилировать этот код
struct A {
const int j;
};
A a;
Я получу ожидаемую ошибку:
error: uninitialized const member в 'struct A
но если я попытаюсь скомпилировать этот:
struct A {
const int j;
};
A * a = new A();
Я получу успешную сборку.
Возникает вопрос: почему распределение new
позволяет создавать переменную с константным элементом без явного конструктора и распределения стека - не?