gpt4 book ai didi

c++ - 当编译时已知引用占用结构中的空间时,是否错过了优化?

转载 作者:行者123 更新时间:2023-12-02 07:47:55 25 4
gpt4 key购买 nike

请参阅此示例:

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

如果sizeof(Foo)!=sizeof(int),这是否是一个错过的优化?

我的意思是,编译器能否从结构中删除 b,因为它始终引用 a

是否有什么因素会阻止编译器进行此转换?

(注意,struct Foo看起来就是这样。没有构造函数等。但是你可以在Foo周围添加任何东西,这表明这种优化会违反标准)

最佳答案

不,因为您可以使用变量的聚合初始化来使其引用其他内容。

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

int c;
Foo f{7, c};

关于c++ - 当编译时已知引用占用结构中的空间时,是否错过了优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57811230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com