Посмотрите этот пример:
struct Foo {
int a;
int &b = a;
};
Это пропущенная оптимизация, если sizeof(Foo)!=sizeof(int)
?
Я имею в виду, может ли компилятор удалить b
из структуры, как это всегда относится к a
?
Есть ли что-нибудь, что мешает компилятору выполнить это преобразование?
(Обратите внимание, что struct Foo
выглядит так, как есть. Нет конструкторов и т.д. Но вы можете добавить что-нибудь вокруг Foo
, что показывает, что эта оптимизация будет нарушать стандарт)