Это пропущенная оптимизация, когда известная во время компиляции ссылка занимает место в структуре?

См. Этот пример:

struct Foo {
    int a;
    int &b = a;
};

Это пропущенная оптимизация, если sizeof(Foo)!=sizeof(int)?

Я имею в виду, может ли компилятор удалить b из структуры, как это всегда относится к a?

Есть ли что-нибудь, что мешает компилятору выполнить это преобразование?

(обратите внимание, struct Foo выглядит так, как есть. Нет конструкторов и т. Д. Но вы можете добавить что-нибудь вокруг Foo, что показывает, что эта оптимизация будет нарушать стандарт)

27
задан ShadowRanger 5 September 2019 в 18:36
поделиться