ホームページ >バックエンド開発 >C++ >C の移動元オブジェクトではどのような操作が有効ですか?

C の移動元オブジェクトではどのような操作が有効ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-25 17:42:15174ブラウズ

What Operations Are Valid on C   Moved-From Objects?

移動元のオブジェクトは何ですか?

C 標準では、C 標準ライブラリで定義された型のオブジェクトの移動元が許可されています。これは、既存のオブジェクトのデータを使用して新しいオブジェクトを作成および初期化し、その後、未指定の状態に移動できることを意味します。

移動元オブジェクトに対する有効な操作

この標準では、移動元オブジェクトは有効だが未指定の状態に置かれなければならないと定義されています。これは、前提条件なしで、移動元のオブジェクトに対してあらゆる操作を実行できることを意味します。このような操作には通常、

  • 破壊
  • 代入
  • Const オブザーバ (get、empty、size など)

での操作前提条件

逆参照や Pop_back など、一般に前提条件がある操作は、移動元オブジェクトに対して直接実行できません。

例: スワップ関数テンプレート

標準ライブラリのスワップ関数テンプレートは、移動元オブジェクトに割り当てる機能を示しています。この関数では、まず移動元オブジェクトが一時変数に割り当てられます (1 行目)。元のオブジェクトには、一時変数の値 (3 行目) が割り当てられる前に、他のオブジェクトの値 (2 行目) が割り当てられます。

初期化構文に関する注意

1 行目で T c(std::move) の代わりに T c = std::move(a) を使用することは、移動操作の議論には関係ありません。それは単にスタイルと好みの問題です。

以上がC の移動元オブジェクトではどのような操作が有効ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。