home | help
std::experi...es::exchange(3)  C++ Standard Libary std::experi...es::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

http://cppreference.com 	   2024.06.10	   std::experi...es::exchange(3)

home | help