Effects: Atomically replaces the value referenced by *ptr with
the result of the computation applied to the value referenced by *ptr
and the given operand.
Memory is affected according to the value of order.
These operations are atomic read-modify-write operations ([intro.races]).