Namespaces
Variants

deref-move

Von de.cppreference.net
 
 
Algorithmenbibliothek
Eingeschränkte Algorithmen und Algorithmen auf Bereichen (C++20)
Eingeschränkte Algorithmen, z.B. ranges::copy, ranges::sort, ...
Nicht-modifizierende Sequenzoperationen    
Stapeloperationen
(C++17)
Suchoperationen
Modifizierende Sequenzoperationen
Kopieroperationen
(C++11)
(C++11)
Tauschoperationen
Transformationsoperationen
Erzeugungsoperationen
Entfernungsoperationen
Reihenfolgeändernde Operationen
(bis C++17)(C++11)
(C++20)(C++20)
Stichprobenoperationen
(C++17)

Sortierung und verwandte Operationen
Partitionierungsoperationen
(C++11)    

Sortieroperationen
Binäre Suchoperationen
(auf partitionierten Bereichen)
Mengenoperationen (auf sortierten Bereichen)
Mischoperationen (auf sortierten Bereichen)
Heap-Operationen
Min-/Max-Operationen
(C++11)
(C++17)
Lexikografische Vergleichsoperationen
Permutationsoperationen


 
 
template< class I >
constexpr decltype(auto) /*deref-move*/( I& iter )
(seit C++17)
(nur zur Darstellung*)

Gibt das Ergebnis der Dereferenzierung von iter als Rvalue zurück:

  • Falls *iter von einem Lvalue-Referenztyp ist, wird std::move(*iter) zurückgegeben.
  • Andernfalls wird direkt *iter zurückgegeben.

Parameter

iter - der Iterator, für den das referenzierte Objekt verschoben wird

Rückgabewert

Wie oben beschrieben.

Hinweise

Diese nur zur Darstellung dienende Funktionsvorlage wurde durch die Lösung von LWG-Problem 3918 eingeführt. Sie wird verwendet, um die unnötige Verschiebekonstruktion aus dem Ergebnis der Dereferenzierung von iter zu vermeiden, falls das Ergebnis bereits ein Rvalue ist.

Siehe auch

verschiebt eine Reihe von Objekten in einen nicht initialisierten Speicherbereich
(Funktionsvorlage & Algorithmus-Funktionsobjekt)
verschiebt eine Anzahl von Objekten in einen nicht initialisierten Speicherbereich
(Funktionsvorlage & Algorithmus-Funktionsobjekt)