首頁 >後端開發 >C++ >C 標準函式庫中向量的自移動分配有何影響?

C 標準函式庫中向量的自移動分配有何影響?

Linda Hamilton
Linda Hamilton原創
2024-11-20 12:55:09390瀏覽

What are the implications of self move assignment for vectors in the C   Standard Library?

C 標準庫中的自移動賦值

C 標準庫保證了標準中定義的自移動賦值的某些行為。

具體而言,該標準規定,對於標準庫中參數類型為 T&& 的函數,實作可以假設參數是對參數的唯一引用。這意味著標準庫可以基於參數是臨時右值的假設來最佳化其行為。

在自移動賦值的情況下,允許實現假設參數向量是純右值。這意味著標準庫可能會執行如果參數是左值則不可能進行的最佳化。

因此,標準庫中的自移動分配可能會導致向量留在資源中-less 狀態,容量為 0。如果向量的容量已經為0,則自移動分配將是

更新

C 標準的最新草案明確指出,在MoveAssignable 要求中,表達式t = rv (其中rv 是右值)如果t 和rv 不引用同一對象,則僅要求t 在賦值之前等於rv。此外,賦值後 rv 的狀態是未指定的。

以上是C 標準函式庫中向量的自移動分配有何影響?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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