ベクトルの成長中に移動セマンティクスを強制する
定義されたコピー コンストラクターと移動コンストラクターを持つ重要な要素を持つ std::vector が成長すると、デフォルトの動作では、コピー コンストラクターを使用して新しい要素のコピーを作成します。代わりに移動コンストラクターの使用を強制するには、このコンストラクターが例外をスローしないことを C に通知する必要があります。
実装
移動コンストラクターを呼び出すことができることを示すため安全に、noexc 指定子を使用して宣言します。
A(A &&rhs) noexcept { std::cout << "i am the move constr" << std::endl; ... move-assignment code ... }
この変更により、std::vector拡張には移動コンストラクターの使用を優先し、既存の要素のリソースがコピーではなく移動されるようにします。
追加情報
以上が成長中に std::vector に強制的に移動セマンティクスを使用させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。