std::indirectly_copyable_storable
| Definiert in Header <iterator> |
||
| template< class In, class Out > concept indirectly_copyable_storable = |
(seit C++20) | |
Das Konzept indirectly_copyable_storable spezifiziert die Beziehung zwischen einem indirectly_readable Typ und einem indirectly_writable Typ. Zusätzlich zu indirectly_copyable spezifiziert dieses Konzept, dass die Kopie vom indirectly_readable Typ über ein Zwischenobjekt erfolgen kann.
[bearbeiten] Semantische Anforderungen
In und Out modellieren std::indirectly_copyable_storable<In, Out> nur, wenn für einen dereferenzierbaren Wert i vom Typ In gilt:
- Nach der Definition std::iter_value_t<In> obj(*i); ist
objgleich dem Wert, auf den zuvor *i verwiesen hat, und - wenn std::iter_reference_t<In> ein rvalue-Referenztyp ist, befindet sich *i nach der Initialisierung von
objin einem gültigen, aber unbespezifizierten Zustand.
[bearbeiten] Gleichheitserhaltung
Ausdrücke, die in requires-Ausdrücken der Standardbibliothekskonzepte deklariert sind, müssen gleichheitserhaltend sein (sofern nicht anders angegeben).
[bearbeiten] Siehe auch
| (C++20) |
spezifiziert, dass Werte von einem indirectly_readable Typ zu einem indirectly_writable Typ kopiert werden können(Konzept) |
| (C++20) |
spezifiziert, dass Werte von einem indirectly_readable Typ zu einem indirectly_writable Typ verschoben werden können und dass das Verschieben über ein Zwischenobjekt erfolgen kann(Konzept) |