移動元オブジェクトで許可される操作
C 標準では、移動元のオブジェクトに対してどのようなアクションが許可されるかを定義しています。これらのオブジェクトは未指定の状態にあるとみなされ、限られた範囲の操作が可能です。
標準リファレンス
セクション 17.6.5.15 [lib.types.movedfrom]標準では、移動元オブジェクトは「有効だが指定されていない場所に配置されるものとする」と規定されています。 state."
非制限的な操作
指定されていない状態のオブジェクトは、前提条件のない操作を受けることができます。一般的な例は次のとおりです。
制限的操作
オブジェクトの不特定の状態が必要な要件を満たしていない可能性があるため、逆参照や Pop_back などの前提条件のある操作を移動元オブジェクトに対して直接実行することはできません。
例: std::swap
スワップ関数テンプレートの例移動元オブジェクトへの代入に依存します (2 行目と 3 行目)。これは、代入が非制限的な操作であるため有効です。
代替コンストラクター構文
行 1 に関して、T c = std::move(a) の使用; T c(std::move(a)) の代わりに;効率上の理由からです。直接初期化にはコピー コンストラクターの呼び出しが必要ですが、割り当ては必要ありません。
以上が移動元の C オブジェクトではどのような操作が許可されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。