Documentation Home >> Headers >> <atomic> Header >> std::atomic >> specializations >> std::atomic<T*> >> std::atomic<T*>::exchange member function

Atomically store a new value and read the old one.

T* exchange(
    T* new_value,
    memory_order order = memory_order_seq_cst)
    volatile;

Effects:

Atomically store new_value in *this and retrieve the existing value of *this.

Returns:

The value of *this immediately prior to the store.

Throws:

Nothing.

Note:

This is an atomic read-modify-write operation for the memory location comprising *this.

Header

#include <atomic>

See Also