為什麼 T&& 的行為不像右邊值引用?
使用 void f(T&&) 和 void f(T& 等函數重載時),令人驚訝的是,當傳入 T&& 時會呼叫 f(T&),儘管反之則不然。這是由於 C 中右值所引用的行為造成的。
與直覺相反,T&& 不只是一個右值引用。它是右值參考類型,這意味著它只能綁定到右值,但在其他方面的行為類似於右值引用類型的左值。這種綁定行為確保沒有名稱的物件和即將失去名稱的物件自動被視為右值。
但是,由於 T&& 有名稱(即 t),因此它被視為左值,因此調用 f( T&) 過載。使用 f(static_cast
總而言之,管理此行為的C 規則是:
以上是為什麼 `T&&` 的行為並不總是像真正的右值引用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!