std::indirectly_movable_storable
From cppreference.com
| ヘッダ <iterator> で定義 |
||
| template< class In, class Out > concept indirectly_movable_storable = |
(C++20以降) | |
indirectly_movable_storableコンセプトは、indirectly_readable型とindirectly_writable型の間の関係を指定します。indirectly_movableに加えて、このコンセプトはindirectly_readable型からの移動が中間オブジェクトを介して実行できることを指定します。
[編集] 意味要件
InおよびOutは、In型のデリファレンス可能な値iが与えられた場合にのみ、std::indirectly_movable_storable<In, Out>をモデル化します。
- 定義 std::iter_value_t<In> obj(ranges::iter_move(i));の後、
objは以前*iによって表されていた値と等しくなり、また、 - もし std::iter_rvalue_reference_t<In> がrvalue参照型である場合、
objの初期化後、*iは有効だが未指定の状態に置かれます。
[編集] 等価性保持
標準ライブラリのコンセプトのrequires式で宣言された式は、(特に明記されていない限り)等価性保持である必要があります。
[編集] 関連項目
| (C++20) |
indirectly_readable 型から indirectly_writable 型へ値をムーブできることを規定する(コンセプト) |
| (C++20) |
indirectly_readable 型から indirectly_writable 型へ値をコピーでき、そのコピーが中間オブジェクトを介して実行できることを規定する(コンセプト) |