Namespaces
Variants

std::experimental::ranges:: exchange

From cppreference.net
Défini dans l'en-tête <experimental/ranges/utility>
template < MoveConstructible T, class U = T >

requires Assignable < T & , U >

constexpr T exchange ( T & obj, U && new_val ) noexcept ( /* voir ci-dessous */ ) ;
(ranges TS)

Remplace la valeur de obj par new_value et retourne l'ancienne valeur de obj , comme si par

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

Table des matières

Paramètres

obj - objet dont la valeur doit être remplacée
new_value - la valeur à assigner à obj

Valeur de retour

L'ancienne valeur de obj .

Exceptions

noexcept spécification :
noexcept ( std:: is_nothrow_move_constructible < T > :: value &&
std:: is_nothrow_assignable < T & , U > :: value )

Exemple

Voir aussi

(C++14)
remplace l'argument par une nouvelle valeur et retourne sa valeur précédente
(modèle de fonction)