簡體   English   中英

當編譯時已知引用占用結構中的空間時,這是一個錯過的優化嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM