table of contents
        
      
      
    | std::experimental::ranges::exchange(3) | C++ Standard Libary | std::experimental::ranges::exchange(3) | 
NAME¶
std::experimental::ranges::exchange - std::experimental::ranges::exchange
Synopsis¶
 Defined in header <experimental/ranges/utility>
  
   template< MoveConstructible T, class U = T >
  
   requires Assignable<T&, U> (ranges TS)
  
   constexpr T exchange( T& obj, U&& new_val ) noexcept(/* see below
    */);
  
   Replaces the value of obj with new_value and returns the old value of obj, as
    if by
  
   T old_value = std::move(obj);
  
   obj = std::forward<U>(new_value);
  
   return old_value;
Parameters¶
 obj - object whose value to replace
  
   new_value - the value to assign to obj
Return value¶
The old value of obj.
Exceptions¶
 noexcept specification:
  
   noexcept(std::is_nothrow_move_constructible<T>::value &&
  
   std::is_nothrow_assignable<T&, U>::value)
Example¶
 This section is incomplete
  
   Reason: no example
See also¶
 exchange replaces the argument with a new value and returns its
    previous value
  
   (C++14) (function template)
Categories:¶
 * conditionally noexcept
  
   * Todo no example
| 2024.06.10 | http://cppreference.com |