這個問題在這里已經有了答案: 為什么左值轉換有效? (2 個回答) 7 小時前關閉。
AFAIK,如果你轉換為非參考型別,你會得到一個純右值。
int x = 234;
(int)x = 23;
std::cout << x << "\n";
輸出:23(在 msvc 中)
在 GCC 和 Clang 中,cstyle cast 回傳一個純右值(如預期的那樣),同時在 MSVC 中,它回傳一個左值。
我錯過了什么還是 MSVC 中的錯誤?
在此處查看現場演示
uj5u.com熱心網友回復:
如果您轉換為左值參考型別,您將獲得一個左值。如果您轉換為右值參考型別,您將獲得一個 xvalue。如果你轉換為非參考型別,你會得到一個純右值。所以,你應該在這里得到一個prvalue。
在 msvc 中使用最新版本的 c ,您將獲得預期的輸出。
使用標志:/std:c latest
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/515301.html
標籤:C c 20
上一篇:指標作為函式指標中的引數
