【发布时间】:2020-01-08 16:41:21
【问题描述】:
看这个例子:
struct Foo {
int a;
int &b = a;
};
如果sizeof(Foo)!=sizeof(int),是不是错过了优化?
我的意思是,编译器可以从结构中删除b,因为它总是引用a?
有什么东西可以阻止编译器进行这种转换吗?
(注意,struct Foo 看起来是这样。没有构造函数等。但是你可以在Foo 周围添加任何东西,这表明这种优化会违反标准)
【问题讨论】:
标签: c++ struct reference initialization language-lawyer