C 中隱式產生Move 操作
在C 11 標準的早期草案中,存在著關於隱式生成Move 的構造函數和賦值運算符。這是由於擔心潛在的性能影響以及希望為程式設計師提供對這些操作的更多控制。
當前規範
當前規範 (N3225)指出如果滿足以下條件,移動構造函數和賦值運算子將被隱式宣告為預設值:
解決問題
解決問題考慮使用 C 11 相容編譯器:如果可能,升級到支援隱式產生行動操作的編譯器根據目前的 C 11 規格。
其他注意事項需要注意的是,實現移動語義消除了對交換成員函數的需要。此外,移動建構函式和賦值運算子僅應在類別管理自己的資源(例如動態分配的記憶體)時使用。對於僅包含 POD 類型和 STL 容器的類,預設的複製語義通常就足夠了。以上是C 中如何隱式產生移動建構函式和賦值運算子?的詳細內容。更多資訊請關注PHP中文網其他相關文章!