std::atomic_ref<T>::exchange

Atomically replaces the value of the referenced object with desired. The operation is a read-modify-write operation. Memory is affected according to the value of order.

# Declarations

value_type exchange( value_type desired,
std::memory_order order =
std::memory_order_seq_cst ) const noexcept;

(constexpr since C++26)

# Parameters

# Return value

The value of the referenced object before the call.

# Defect reports

DRApplied toBehavior as publishedCorrect behavior
LWG 3508(P3323R1)C++20exchange was meaningless for const Tconstrained to accept only non-const T