std:: indirectly_movable_storable
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定義済みヘッダ
<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
モデル
std
::
indirectly_movable_storable
<
In, Out
>
は、型
In
のデリファレンス可能な値
i
が与えられた場合にのみ:
-
定義後
std::
iter_value_t
<
In
>
obj
(
ranges::
iter_move
(
i
)
)
;
、
objは以前 * i によって示されていた値と等しく、 -
もし
std::
iter_rvalue_reference_t
<
In
>
が右辺値参照型である場合、
*
i
は
objの初期化後に有効だが未規定の状態に置かれる。
等価性保存
標準ライブラリコンセプトの requires expressions で宣言される式は、 equality-preserving であることが要求されます(特に明記されている場合を除く)。
関連項目
|
(C++20)
|
値が
indirectly_readable
型から
indirectly_writable
型へムーブ可能であることを指定する
(コンセプト) |
|
(C++20)
|
値が
indirectly_readable
型から
indirectly_writable
型へコピー可能であり、そのコピーが中間オブジェクトを介して実行可能であることを指定する
(コンセプト) |