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