C 標準庫中的自移動賦值
C 標準庫保證了標準中定義的自移動賦值的某些行為。
具體而言,該標準規定,對於標準庫中參數類型為 T&& 的函數,實作可以假設參數是對參數的唯一引用。這意味著標準庫可以基於參數是臨時右值的假設來最佳化其行為。
在自移動賦值的情況下,允許實現假設參數向量是純右值。這意味著標準庫可能會執行如果參數是左值則不可能進行的最佳化。
因此,標準庫中的自移動分配可能會導致向量留在資源中-less 狀態,容量為 0。如果向量的容量已經為0,則自移動分配將是
更新
C 標準的最新草案明確指出,在MoveAssignable 要求中,表達式t = rv (其中rv 是右值)如果t 和rv 不引用同一對象,則僅要求t 在賦值之前等於rv。此外,賦值後 rv 的狀態是未指定的。
以上是C 標準函式庫中向量的自移動分配有何影響?的詳細內容。更多資訊請關注PHP中文網其他相關文章!