The <atomic> header provides the set of basic atomic types and operations on those types, and a class template for constructing an atomic version of a user-defined type that meets certain criteria.
#define ATOMIC_CHAR_LOCK_FREE unspecified #define ATOMIC_SHORT_LOCK_FREE unspecified #define ATOMIC_INT_LOCK_FREE unspecified #define ATOMIC_LONG_LOCK_FREE unspecified #define ATOMIC_LLONG_LOCK_FREE unspecified #define ATOMIC_ADDRESS_LOCK_FREE unspecified #define ATOMIC_CHAR16_T_LOCK_FREE unspecified #define ATOMIC_CHAR32_T_LOCK_FREE unspecified #define ATOMIC_WCHAR_T_LOCK_FREE unspecified #define ATOMIC_VAR_INIT(value) see description namespace std { enum memory_order; struct atomic_flag; struct atomic_bool; struct atomic_char; struct atomic_schar; struct atomic_uchar; struct atomic_short; struct atomic_ushort; struct atomic_int; struct atomic_uint; struct atomic_long; struct atomic_ulong; struct atomic_llong; struct atomic_ullong; struct atomic_wchar_t; struct atomic_address; typedef unspecified atomic_int_least8_t; typedef unspecified atomic_uint_least8_t; typedef unspecified atomic_int_least16_t; typedef unspecified atomic_uint_least16_t; typedef unspecified atomic_int_least32_t; typedef unspecified atomic_uint_least32_t; typedef unspecified atomic_int_least64_t; typedef unspecified atomic_uint_least64_t; typedef unspecified atomic_int_fast8_t; typedef unspecified atomic_uint_fast8_t; typedef unspecified atomic_int_fast16_t; typedef unspecified atomic_uint_fast16_t; typedef unspecified atomic_int_fast32_t; typedef unspecified atomic_uint_fast32_t; typedef unspecified atomic_int_fast64_t; typedef unspecified atomic_uint_fast64_t; typedef unspecified atomic_intptr_t; typedef unspecified atomic_uintptr_t; typedef unspecified atomic_size_t; typedef unspecified atomic_ssize_t; typedef unspecified atomic_ptrdiff_t; typedef unspecified atomic_intmax_t; typedef unspecified atomic_uintmax_t; template<typename T> struct atomic; void atomic_thread_fence(memory_order order); void atomic_signal_fence(memory_order order); template<typename T> T kill_dependency(T); }