Atomically store a new value and read the old one.
T* exchange( T* new_value, memory_order order = memory_order_seq_cst) volatile;
and retrieve the existing value of
The value of
*this immediately prior to the
This is an atomic read-modify-write operation for the memory