The Class Template std::atomic_ref
(C++20)
The class template std::atomic_ref
applies atomic operations to the referenced non-atomic object. Concurrent writing and reading of atomic object is, therefore, no data race. The lifetime of the referenced object must exceed the lifetime of the atomic_ref
. Accessing a subobject of the referenced object with an atomic_ref
is not well-defined.
Accordingly to std::atomic
, std::atomic_ref
can be specialised and supports specialisations for the built-in data types.
Specialisations of std::atomic_ref
You can specialise std::atomic_ref
for user-defined type, use partially specialisations for pointer types, or full specialisations for arithmetic types such as integral or floating-point types.
Primary Template
The primary template std::atomic_ref
can be instantiated with a TriviallyCopyable type T.