C++11 introduced the std::atomic<> template library. The standard specifies the store() and load() operations to atomically set / get a varia
Are assignment and access operations for non-reference types also atomic?
Yes, they are. atomic and atomic are equivalent to atomic and atomic respectively. All the operators are implemented in the atomic class such that they will use atomic operations as you would expect.
I'm not sure what you mean about "non-reference" types? Not sure how reference types are relevant here.