std:: indirectly_movable_storable
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert im Header
<iterator>
|
||
|
template
<
class
In,
class
Out
>
concept indirectly_movable_storable
=
|
(seit C++20) | |
Das
indirectly_movable_storable
-Konzept spezifiziert die Beziehung zwischen einem
indirectly_readable
-Typ und einem
indirectly_writable
-Typ. Zusätzlich zu
indirectly_movable
spezifiziert dieses Konzept, dass die Verschiebung vom
indirectly_readable
-Typ über ein Zwischenobjekt durchgeführt werden kann.
Semantische Anforderungen
In
und
Out
Modell
std
::
indirectly_movable_storable
<
In, Out
>
nur dann, wenn ein dereferenzierbarer Wert
i
vom Typ
In
gegeben ist:
-
Nach der Definition
std::
iter_value_t
<
In
>
obj
(
ranges::
iter_move
(
i
)
)
;
ist
objgleich dem Wert, der zuvor durch * i bezeichnet wurde, und -
falls
std::
iter_rvalue_reference_t
<
In
>
ein Rvalue-Referenztyp ist, wird
*
i
nach der Initialisierung von
objin einen gültigen, aber unspezifizierten Zustand versetzt.
Gleichheitserhaltung
Ausdrücke, die in requires expressions der Standardbibliothek-Konzepte deklariert werden, müssen equality-preserving sein (sofern nicht anders angegeben).
Siehe auch
|
(C++20)
|
spezifiziert, dass Werte von einem
indirectly_readable
Typ zu einem
indirectly_writable
Typ verschoben werden können
(Konzept) |
|
(C++20)
|
spezifiziert, dass Werte von einem
indirectly_readable
Typ zu einem
indirectly_writable
Typ kopiert werden können und dass die Kopie über ein Zwischenobjekt erfolgen kann
(Konzept) |