Visual Studio 錯誤:非常量引用綁定到臨時物件
給定的程式碼片段說明了在Visual Studio 中觀察到的特殊行為:
class Zebra {int x;}; Zebra goo() {Zebra z; return z;} void foo(Zebra &x) { Zebra y; x = y; foo(goo()); }
Visual Studio 允許此程式碼編譯而不會出現錯誤,而gcc會引發編譯錯誤。當使用 typedef 將 Zebra 表示為 int 時,此行為變得更加令人費解,因為 Visual Studio 隨後會偵測到該問題。
此行為是由舊的 Visual Studio 擴充功能所驅動的。正如 Microsoft 錯誤報告「臨時物件可以綁定到非常量參考」中所述,Visual Studio 允許將非常量引用綁定到臨時物件。
但是,可以使用 / 停用此擴充Za 編譯器標誌,這將使相關程式碼片段成為錯誤。此外,還可以使用 4 級警告(使用 /W4 啟用)來標記此問題。
以上是為什麼 Visual Studio 允許非常量引用綁定到臨時物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!