Defined in header
1,2) Atomically replaces the value pointed to by obj with the value of desired as if by obj->store(desired).
3,4) Atomically replaces the value pointed to by obj with the value of desired as if by obj->store(desired, order).
If order is one of std::memory_order_consume, std::memory_order_acquire and std::memory_order_acq_rel, the behavior is undefined.
|obj||-||pointer to the atomic object to modify|
|desired||-||the value to store in the atomic object|
|order||-||the memory synchronization ordering|
 Return value
 Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
|DR||Applied to||Behavior as published||Correct behavior|
|P0558R1||C++11|| exact type match was required because
 See also
| atomically replaces the value of the atomic object with a non-atomic argument |
(public member function of
| atomically obtains the value stored in an atomic object |
| defines memory ordering constraints for the given atomic operation |
(deprecated in C++20)
| specializes atomic operations for std::shared_ptr |
C documentation for atomic_store, atomic_store_explicit