C での移動操作の暗黙的な生成
C 11 標準の初期草案では、暗黙的な移動操作の生成に関する議論がありました。コンストラクターと代入演算子。これは、潜在的なパフォーマンスへの影響に関する懸念と、これらの操作をプログラマがより詳細に制御できるようにしたいという要望によるものでした。
現在の仕様
現在の仕様 (N3225) では、次のように規定されています。次の場合、移動コンストラクターと代入演算子はデフォルトとして暗黙的に宣言されます。
問題への対処
デフォルトの動作は時間の経過とともに変化しましたが、古いコンパイラでの暗黙的な移動操作の欠如に対処する方法がいくつかあります。
追加考慮事項
移動セマンティクスを実装すると、スワップ メンバー関数が必要なくなることに注意することが重要です。さらに、移動コンストラクターと代入演算子は、クラスが動的に割り当てられたメモリなどの独自のリソースを管理する場合にのみ使用してください。 POD タイプと STL コンテナのみを含むクラスの場合、通常はデフォルトのコピー セマンティクスで十分です。
以上がC では、移動コンストラクターと代入演算子はどのように暗黙的に生成されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。