std::experimental::ranges::exchange
Von cppreference.com
< cpp | experimental | ranges
| Definiert in Header <experimental/ranges/utility> |
||
| template< MoveConstructible T, class U = T > requires Assignable<T&, U> |
(Ranges TS) | |
Ersetzt den Wert von obj durch new_value und gibt den alten Wert von obj zurück, als ob durch
T old_value = std::move(obj); obj = std::forward<U>(new_value); return old_value;
Inhalt |
[bearbeiten] Parameter
| obj | - | Das Objekt, dessen Wert ersetzt werden soll |
| new_value | - | Der Wert, der obj zugewiesen werden soll |
[bearbeiten] Rückgabewert
Der alte Wert von obj.
[bearbeiten] Ausnahmen
noexcept-Spezifikation:
noexcept(std::is_nothrow_move_constructible<T>::value &&
std::is_nothrow_assignable<T&, U>::value)
std::is_nothrow_assignable<T&, U>::value)
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Siehe auch
| (C++14) |
ersetzt das Argument durch einen neuen Wert und gibt seinen vorherigen Wert zurück (Funktionsvorlage) |