...

/

Specializations of std::atomic_ref

Specializations of std::atomic_ref

Explore specializations associated with std::atomic_ref.

You can specialize std::atomic_ref for user-defined types, use partial specializations for pointer types, or full specializations 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 as:

struct Counters { 
    int a;
    int b; 
};
Counter counter;
std::atomic_ref<Counters> cnt(counter);

Partial specializations for pointer types

The standard provides partial specializations for a pointer type: std::atomic_ref<T*>.

Specializations for arithmetic types

The standard provides specialization for the integral and floating-point types: std::atomic_ref<arithmetic type>.

  • Character types: char, char8_t(C++20), char16_t, char32_t, and wchar_t

  • Standard signed-integer types: signed char, short, int, long, and long long ...