![](/img/trans.png)
[英]Is it a missed optimization, when a compile-time known reference takes space in a non-aggregate struct?
[英]Is it a missed optimization, when a compile-time known reference takes space in a struct?
看這個例子:
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};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.