The overload of operator= which accepts a (non-atomic) value of type T performs an atomic store with std::memory_order_seq_cst
There is no race condition.
To see the 'current' value of an atomic object (instead of a snapshot of the value at a particular point in time),
alias the atomic object (instead of storing a copy).