The C++ atomic types overload specified operators, defaulting to a sequentially consistent ordering, we should do the same.
Due to the semantics of atomic operations, however, this is blocked on assignment operator overloading (since a += b is a different operation to c = a + b) (#5992)