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
>
только если задано разыменовываемое значение
i
типа
In
:
-
После определения
std::
iter_value_t
<
In
>
obj
(
ranges::
iter_move
(
i
)
)
;
,
objравно значению, ранее обозначенному * i , и -
если
std::
iter_rvalue_reference_t
<
In
>
является типом rvalue-ссылки,
*
i
переводится в допустимое, но неопределённое состояние после инициализации
obj.
Сохранение равенства
Выражения, объявленные в requires выражениях концепций стандартной библиотеки, должны быть equality-preserving (если не указано иное).
Смотрите также
|
(C++20)
|
определяет, что значения могут быть перемещены из
indirectly_readable
типа в
indirectly_writable
тип
(концепт) |
|
(C++20)
|
определяет, что значения могут быть скопированы из
indirectly_readable
типа в
indirectly_writable
тип и что копирование может быть выполнено через промежуточный объект
(концепт) |