我遇到了這個,其中指出:
不是錯誤,
auto(x);被解釋為auto x;.auto(x);如果您希望它成為運算式,請使用。
上面的內容似乎暗示,既然auto(x);是一個宣告(相當于auto x;),它應該被拒絕,因為我們正在使用auto并且沒有初始化程式。
雖然這表明:
是的,這在 C 23 中發生了變化,因此 auto(X) 創建了 x 的衰減型別的右值。
上述參考的陳述似乎相互矛盾。所以我的問題是 C 23 標準對此有何評論?我的意思是auto(x);宣告或顯式型別轉換。
uj5u.com熱心網友回復:
請注意有問題的 GCC 錯誤參考的代碼:
int main() {
int x = 0;
float t;
t = auto(x);
}
auto(x)這里不是宣告;這無疑是一種表達方式。如果auto(x)用作運算式,它將表現為運算式。但是,如果它以使其成為陳述句的方式使用,那么它將表現得如此。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/470101.html
