首頁  >  文章  >  後端開發  >  為什麼 `std::move` 命名為 `std::move`?

為什麼 `std::move` 命名為 `std::move`?

Barbara Streisand
Barbara Streisand原創
2024-11-25 14:50:11258瀏覽

Why is `std::move` named `std::move`?

為什麼 std::move 命名為 std::move?

雖然 std::move(x) 函數不會物理移動任何東西,但它的作用是強制轉換為右值。這個命名決定是為了增強程式碼可讀性。

在先前對右值引用的討論中,引入了語法糖「move」來傳達轉換背後的意圖,特別是啟用移動語義。此命名取代了更具技術性的“cast_to_rvalue”,這可能會引發對其用途的疑問。

透過使用“move”,程式碼明確表示從右側移動而不是從右側複製的意圖,無需了解具體的實作細節。

std::move 的底層機制是強制轉換為 xvalue,但其主要影響是在編譯期間,可能會影響適當重載的選擇是基於移動賦值運算子的存在。在運行時,std::move 完全消失,對可移動物件的目標程式碼沒有明顯影響。

以上是為什麼 `std::move` 命名為 `std::move`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn