deref-move
Von de.cppreference.net
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
*itervon einem Lvalue-Referenztyp ist, wirdstd::move(*iter)zurückgegeben. - Andernfalls wird direkt
*iterzurü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
(C++17) |
verschiebt eine Reihe von Objekten in einen nicht initialisierten Speicherbereich (Funktionsvorlage & Algorithmus-Funktionsobjekt) |
(C++20) |
|
(C++17) |
verschiebt eine Anzahl von Objekten in einen nicht initialisierten Speicherbereich (Funktionsvorlage & Algorithmus-Funktionsobjekt) |
(C++20) |