`std::memory_order` provides values for specifying the memory-ordering semantics of atomic operations. If no value is supplied, the operation uses `std::memory_order_seq_cst`, the strongest ordering. The precise semantics of the values require further study. section 5.2.1
The operation category determines which values are permitted:
- Stores: `relaxed`, `release`, or `seq_cst`. section 5.2.1
- Loads: `relaxed`, `consume`, `acquire`, or `seq_cst`. section 5.2.1
- Read-modify-write operations: `relaxed`, `consume`, `acquire`, `release`, `acq_rel`, or `seq_cst`. section 5.2.1
