std:: indirectly_movable_storable
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definido en el encabezado
<iterator>
|
||
|
template
<
class
In,
class
Out
>
concept indirectly_movable_storable
=
|
(desde C++20) | |
El concepto
indirectly_movable_storable
especifica la relación entre un tipo
indirectly_readable
y un tipo
indirectly_writable
. Además de
indirectly_movable
, este concepto especifica que la transferencia desde el tipo
indirectly_readable
puede realizarse mediante un objeto intermedio.
Requisitos semánticos
In
y
Out
modelan
std
::
indirectly_movable_storable
<
In, Out
>
solo si dado un valor dereferenciable
i
de tipo
In
:
-
Después de la definición
std::
iter_value_t
<
In
>
obj
(
ranges::
iter_move
(
i
)
)
;
,
objes igual al valor previamente denotado por * i , y -
si
std::
iter_rvalue_reference_t
<
In
>
es un tipo de referencia a rvalue,
*
i
queda en un estado válido pero no especificado después de la inicialización de
obj.
Preservación de la igualdad
Las expresiones declaradas en las requires expressions de los conceptos de la biblioteca estándar deben ser equality-preserving (excepto cuando se indique lo contrario).
Véase también
|
(C++20)
|
especifica que los valores pueden ser movidos desde un tipo
indirectly_readable
a un tipo
indirectly_writable
(concepto) |
|
(C++20)
|
especifica que los valores pueden ser copiados desde un tipo
indirectly_readable
a un tipo
indirectly_writable
y que la copia puede realizarse a través de un objeto intermedio
(concepto) |