Namespaces
Variants

std::experimental::ranges:: exchange

From cppreference.net
template < MoveConstructible T, class U = T >

requires Assignable < T & , U >

constexpr T exchange ( T & obj, U && new_val ) noexcept ( /* siehe unten */ ) ;
(ranges TS)

Ersetzt den Wert von obj durch new_value und gibt den alten Wert von obj zurück, wie durch

T old_value = std::move(obj);
obj = std::forward<U>(new_value);
return old_value;

Inhaltsverzeichnis

Parameter

obj - Objekt, dessen Wert ersetzt werden soll
new_value - der Wert, der obj zugewiesen werden soll

Rückgabewert

Der alte Wert von obj .

Exceptions

noexcept Spezifikation:
noexcept ( std:: is_nothrow_move_constructible < T > :: value &&
std:: is_nothrow_assignable < T & , U > :: value )

Beispiel

Siehe auch

(C++14)
ersetzt das Argument durch einen neuen Wert und gibt seinen vorherigen Wert zurück
(Funktionsschablone)