首頁 >後端開發 >C++ >C 中移出的標準庫物件允許執行哪些操作?

C 中移出的標準庫物件允許執行哪些操作?

DDD
DDD原創
2024-12-25 11:50:40316瀏覽

What Operations Are Permissible on Moved-From Standard Library Objects in C  ?

對移出物件的操作

儘管常見的誤解是移出物件只能被銷毀,但C 標準指定移出物件-from 標準庫類型的物件被置於未指定的狀態,允許有限的操作範圍。此狀態在物件移出後出現,啟用通常沒有先決條件的操作。

無條件操作

以下操作通常可應用於移出不滿足前提條件的對象:

  • 銷毀: 解除分配對象的記憶體。
  • 賦值:將移出的物件設定為另一個物件的值。
  • 持續觀察:存取諸如getter 函數、陣列大小和空性布林值。

條件操作

相反,以下操作可能要求物件不處於未指定的狀態,因此在移動時通常不允許-來自物件:

  • 取消引用:透過指標或引用存取物件的內部。
  • 突變:對物件的欄位進行變更。

關於std::swap

在範例交換函數範本中,賦值操作(第2 行和3) 即使涉及移出物件也是有效的,因為賦值通常沒有前提條件。

最後

標準函式庫類型的未指定狀態物件的標準詳細說明位於 17.6.5.15 [lib.types.movedfrom]。

以上是C 中移出的標準庫物件允許執行哪些操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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