libstdc++: Atomics

libstdc++

Atomics

## Classes
struct | std::atomic< _Tp >
struct | std::atomic< _Tp * >
struct | std::atomic_flag

## Macros
#define | ATOMIC_BOOL_LOCK_FREE
#define | ATOMIC_CHAR16_T_LOCK_FREE
#define | ATOMIC_CHAR32_T_LOCK_FREE
#define | ATOMIC_CHAR_LOCK_FREE
#define | ATOMIC_FLAG_INIT
#define | ATOMIC_INT_LOCK_FREE
#define | ATOMIC_LLONG_LOCK_FREE
#define | ATOMIC_LONG_LOCK_FREE
#define | ATOMIC_POINTER_LOCK_FREE
#define | ATOMIC_SHORT_LOCK_FREE
#define | ATOMIC_VAR_INIT(_VI)
#define | ATOMIC_WCHAR_T_LOCK_FREE

## Typedefs
typedef unsigned char | std::__atomic_flag_data_type
typedef atomic< bool > | std::atomic_bool
typedef atomic< char > | std::atomic_char
typedef atomic< char16_t > | std::atomic_char16_t
typedef atomic< char32_t > | std::atomic_char32_t
typedef atomic< int > | std::atomic_int
typedef atomic< int16_t > | std::atomic_int16_t
typedef atomic< int32_t > | std::atomic_int32_t
typedef atomic< int64_t > | std::atomic_int64_t
typedef atomic< int8_t > | std::atomic_int8_t
typedef atomic< int_fast16_t > | std::atomic_int_fast16_t
typedef atomic< int_fast32_t > | std::atomic_int_fast32_t
typedef atomic< int_fast64_t > | std::atomic_int_fast64_t
typedef atomic< int_fast8_t > | std::atomic_int_fast8_t
typedef atomic< int_least16_t > | std::atomic_int_least16_t
typedef atomic< int_least32_t > | std::atomic_int_least32_t
typedef atomic< int_least64_t > | std::atomic_int_least64_t
typedef atomic< int_least8_t > | std::atomic_int_least8_t
typedef atomic< intmax_t > | std::atomic_intmax_t
typedef atomic< intptr_t > | std::atomic_intptr_t
typedef atomic< long long > | std::atomic_llong
typedef atomic< long > | std::atomic_long
typedef atomic< ptrdiff_t > | std::atomic_ptrdiff_t
typedef atomic< signed char > | std::atomic_schar
typedef atomic< short > | std::atomic_short
typedef atomic< size_t > | std::atomic_size_t
typedef atomic< unsigned char > | std::atomic_uchar
typedef atomic< unsigned int > | std::atomic_uint
typedef atomic< uint16_t > | std::atomic_uint16_t
typedef atomic< uint32_t > | std::atomic_uint32_t
typedef atomic< uint64_t > | std::atomic_uint64_t
typedef atomic< uint8_t > | std::atomic_uint8_t
typedef atomic< uint_fast16_t > | std::atomic_uint_fast16_t
typedef atomic< uint_fast32_t > | std::atomic_uint_fast32_t
typedef atomic< uint_fast64_t > | std::atomic_uint_fast64_t
typedef atomic< uint_fast8_t > | std::atomic_uint_fast8_t
typedef atomic< uint_least16_t > | std::atomic_uint_least16_t
typedef atomic< uint_least32_t > | std::atomic_uint_least32_t
typedef atomic< uint_least64_t > | std::atomic_uint_least64_t
typedef atomic< uint_least8_t > | std::atomic_uint_least8_t
typedef atomic< uintmax_t > | std::atomic_uintmax_t
typedef atomic< uintptr_t > | std::atomic_uintptr_t
typedef atomic< unsigned long long > | std::atomic_ullong
typedef atomic< unsigned long > | std::atomic_ulong
typedef atomic< unsigned short > | std::atomic_ushort
typedef atomic< wchar_t > | std::atomic_wchar_t

## Enumerations
enum class | std::memory_order : int { relaxed , consume , acquire , release , acq_rel , seq_cst }

## Functions
template<typename _ITp>
bool | std::atomic_compare_exchange_strong (atomic< _ITp > *__a, __atomic_val_t< _ITp > *__i1, __atomic_val_t< _ITp > __i2) noexcept
template<typename _ITp>
bool | std::atomic_compare_exchange_strong (volatile atomic< _ITp > *__a, __atomic_val_t< _ITp > *__i1, __atomic_val_t< _ITp > __i2) noexcept
template<typename _ITp>
bool | std::atomic_compare_exchange_strong_explicit (atomic< _ITp > *__a, __atomic_val_t< _ITp > *__i1, __atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept
template<typename _ITp>
bool | std::atomic_compare_exchange_strong_explicit (volatile atomic< _ITp > *__a, __atomic_val_t< _ITp > *__i1, __atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept
template<typename _ITp>
bool | std::atomic_compare_exchange_weak (atomic< _ITp > *__a, __atomic_val_t< _ITp > *__i1, __atomic_val_t< _ITp > __i2) noexcept
template<typename _ITp>
bool | std::atomic_compare_exchange_weak (volatile atomic< _ITp > *__a, __atomic_val_t< _ITp > *__i1, __atomic_val_t< _ITp > __i2) noexcept
template<typename _ITp>
bool | std::atomic_compare_exchange_weak_explicit (atomic< _ITp > *__a, __atomic_val_t< _ITp > *__i1, __atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept
template<typename _ITp>
bool | std::atomic_compare_exchange_weak_explicit (volatile atomic< _ITp > *__a, __atomic_val_t< _ITp > *__i1, __atomic_val_t< _ITp > __i2, memory_order __m1, memory_order __m2) noexcept
template<typename _ITp>
_ITp | std::atomic_exchange (atomic< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_exchange (volatile atomic< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_exchange_explicit (atomic< _ITp > *__a, __atomic_val_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_exchange_explicit (volatile atomic< _ITp > *__a, __atomic_val_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_add (atomic< _ITp > *__a, __atomic_diff_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_add (volatile atomic< _ITp > *__a, __atomic_diff_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_add_explicit (atomic< _ITp > *__a, __atomic_diff_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_add_explicit (volatile atomic< _ITp > *__a, __atomic_diff_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_and (__atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_and (volatile __atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_and_explicit (__atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_and_explicit (volatile __atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_or (__atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_or (volatile __atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_or_explicit (__atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_or_explicit (volatile __atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_sub (atomic< _ITp > *__a, __atomic_diff_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_sub (volatile atomic< _ITp > *__a, __atomic_diff_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_sub_explicit (atomic< _ITp > *__a, __atomic_diff_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_sub_explicit (volatile atomic< _ITp > *__a, __atomic_diff_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_xor (__atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_xor (volatile __atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_xor_explicit (__atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_fetch_xor_explicit (volatile __atomic_base< _ITp > *__a, __atomic_val_t< _ITp > __i, memory_order __m) noexcept
void | std::atomic_flag_clear (atomic_flag *__a) noexcept
void | std::atomic_flag_clear (volatile atomic_flag *__a) noexcept
void | std::atomic_flag_clear_explicit (atomic_flag *__a, memory_order __m) noexcept
void | std::atomic_flag_clear_explicit (volatile atomic_flag *__a, memory_order __m) noexcept
bool | std::atomic_flag_test_and_set (atomic_flag *__a) noexcept
bool | std::atomic_flag_test_and_set (volatile atomic_flag *__a) noexcept
bool | std::atomic_flag_test_and_set_explicit (atomic_flag *__a, memory_order __m) noexcept
bool | std::atomic_flag_test_and_set_explicit (volatile atomic_flag *__a, memory_order __m) noexcept
template<typename _ITp>
void | std::atomic_init (atomic< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
void | std::atomic_init (volatile atomic< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
bool | std::atomic_is_lock_free (const atomic< _ITp > *__a) noexcept
template<typename _ITp>
bool | std::atomic_is_lock_free (const volatile atomic< _ITp > *__a) noexcept
template<typename _ITp>
_ITp | std::atomic_load (const atomic< _ITp > *__a) noexcept
template<typename _ITp>
_ITp | std::atomic_load (const volatile atomic< _ITp > *__a) noexcept
template<typename _ITp>
_ITp | std::atomic_load_explicit (const atomic< _ITp > *__a, memory_order __m) noexcept
template<typename _ITp>
_ITp | std::atomic_load_explicit (const volatile atomic< _ITp > *__a, memory_order __m) noexcept
void | std::atomic_signal_fence (memory_order __m) noexcept
template<typename _ITp>
void | std::atomic_store (atomic< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
void | std::atomic_store (volatile atomic< _ITp > *__a, __atomic_val_t< _ITp > __i) noexcept
template<typename _ITp>
void | std::atomic_store_explicit (atomic< _ITp > *__a, __atomic_val_t< _ITp > __i, memory_order __m) noexcept
template<typename _ITp>
void | std::atomic_store_explicit (volatile atomic< _ITp > *__a, __atomic_val_t< _ITp > __i, memory_order __m) noexcept
void | std::atomic_thread_fence (memory_order __m) noexcept
template<typename _Tp>
_Tp | std::kill_dependency (_Tp __y) noexcept
constexpr memory_order | std::operator& (memory_order __m, __memory_order_modifier __mod) noexcept
constexpr memory_order | std::operator| (memory_order __m, __memory_order_modifier __mod) noexcept

## Variables
constexpr memory_order | std::memory_order_acq_rel
constexpr memory_order | std::memory_order_acquire
constexpr memory_order | std::memory_order_consume
constexpr memory_order | std::memory_order_relaxed
constexpr memory_order | std::memory_order_release
constexpr memory_order | std::memory_order_seq_cst

## Detailed Description

Components for performing atomic operations.

## Macro Definition Documentation

## ◆ ATOMIC_BOOL_LOCK_FREE

#define ATOMIC_BOOL_LOCK_FREE

Lock-free property.

0 indicates that the types are never lock-free. 1 indicates that the types are sometimes lock-free. 2 indicates that the types are always lock-free.

Definition at line 51 of file atomic_lockfree_defines.h.

## ◆ ATOMIC_CHAR16_T_LOCK_FREE

#define ATOMIC_CHAR16_T_LOCK_FREE

Definition at line 57 of file atomic_lockfree_defines.h.

## ◆ ATOMIC_CHAR32_T_LOCK_FREE

#define ATOMIC_CHAR32_T_LOCK_FREE

Definition at line 58 of file atomic_lockfree_defines.h.

## ◆ ATOMIC_CHAR_LOCK_FREE

#define ATOMIC_CHAR_LOCK_FREE

Definition at line 52 of file atomic_lockfree_defines.h.

## ◆ ATOMIC_FLAG_INIT

#define ATOMIC_FLAG_INIT

Definition at line 208 of file atomic_base.h.

## ◆ ATOMIC_INT_LOCK_FREE

#define ATOMIC_INT_LOCK_FREE

Definition at line 60 of file atomic_lockfree_defines.h.

## ◆ ATOMIC_LLONG_LOCK_FREE

#define ATOMIC_LLONG_LOCK_FREE

Definition at line 62 of file atomic_lockfree_defines.h.

## ◆ ATOMIC_LONG_LOCK_FREE

#define ATOMIC_LONG_LOCK_FREE

Definition at line 61 of file atomic_lockfree_defines.h.

## ◆ ATOMIC_POINTER_LOCK_FREE

#define ATOMIC_POINTER_LOCK_FREE

Definition at line 63 of file atomic_lockfree_defines.h.

## ◆ ATOMIC_SHORT_LOCK_FREE

#define ATOMIC_SHORT_LOCK_FREE

Definition at line 59 of file atomic_lockfree_defines.h.

## ◆ ATOMIC_VAR_INIT

#define ATOMIC_VAR_INIT | ( |  | _VI | ) |

Definition at line 170 of file atomic_base.h.

## ◆ ATOMIC_WCHAR_T_LOCK_FREE

#define ATOMIC_WCHAR_T_LOCK_FREE

Definition at line 53 of file atomic_lockfree_defines.h.

## Typedef Documentation

## ◆ __atomic_flag_data_type

typedef unsigned char std::__atomic_flag_data_type

Definition at line 182 of file atomic_base.h.

## ◆ atomic_bool

typedef atomic<bool> std::atomic_bool

atomic_bool

Definition at line 1099 of file atomic.

## ◆ atomic_char

typedef atomic<char> std::atomic_char

atomic_char

Definition at line 1102 of file atomic.

## ◆ atomic_char16_t

typedef atomic<char16_t> std::atomic_char16_t

atomic_char16_t

Definition at line 1143 of file atomic.

## ◆ atomic_char32_t

typedef atomic<char32_t> std::atomic_char32_t

atomic_char32_t

Definition at line 1146 of file atomic.

## ◆ atomic_int

typedef atomic<int> std::atomic_int

atomic_int

Definition at line 1117 of file atomic.

## ◆ atomic_int16_t

typedef atomic<int16_t> std::atomic_int16_t

atomic_int16_t

Definition at line 1159 of file atomic.

## ◆ atomic_int32_t

typedef atomic<int32_t> std::atomic_int32_t

atomic_int32_t

Definition at line 1165 of file atomic.

## ◆ atomic_int64_t

typedef atomic<int64_t> std::atomic_int64_t

atomic_int64_t

Definition at line 1171 of file atomic.

## ◆ atomic_int8_t

typedef atomic<int8_t> std::atomic_int8_t

atomic_int8_t

Definition at line 1153 of file atomic.

## ◆ atomic_int_fast16_t

typedef atomic<int_fast16_t> std::atomic_int_fast16_t

atomic_int_fast16_t

Definition at line 1209 of file atomic.

## ◆ atomic_int_fast32_t

typedef atomic<int_fast32_t> std::atomic_int_fast32_t

atomic_int_fast32_t

Definition at line 1215 of file atomic.

## ◆ atomic_int_fast64_t

typedef atomic<int_fast64_t> std::atomic_int_fast64_t

atomic_int_fast64_t

Definition at line 1221 of file atomic.

## ◆ atomic_int_fast8_t

typedef atomic<int_fast8_t> std::atomic_int_fast8_t

atomic_int_fast8_t

Definition at line 1203 of file atomic.

## ◆ atomic_int_least16_t

typedef atomic<int_least16_t> std::atomic_int_least16_t

atomic_int_least16_t

Definition at line 1184 of file atomic.

## ◆ atomic_int_least32_t

typedef atomic<int_least32_t> std::atomic_int_least32_t

atomic_int_least32_t

Definition at line 1190 of file atomic.

## ◆ atomic_int_least64_t

typedef atomic<int_least64_t> std::atomic_int_least64_t

atomic_int_least64_t

Definition at line 1196 of file atomic.

## ◆ atomic_int_least8_t

typedef atomic<int_least8_t> std::atomic_int_least8_t

atomic_int_least8_t

Definition at line 1178 of file atomic.

## ◆ atomic_intmax_t

typedef atomic<intmax_t> std::atomic_intmax_t

atomic_intmax_t

Definition at line 1240 of file atomic.

## ◆ atomic_intptr_t

typedef atomic<intptr_t> std::atomic_intptr_t

atomic_intptr_t

Definition at line 1228 of file atomic.

## ◆ atomic_llong

typedef atomic<long long> std::atomic_llong

atomic_llong

Definition at line 1129 of file atomic.

## ◆ atomic_long

typedef atomic<long> std::atomic_long

atomic_long

Definition at line 1123 of file atomic.

## ◆ atomic_ptrdiff_t

typedef atomic<ptrdiff_t> std::atomic_ptrdiff_t

atomic_ptrdiff_t

Definition at line 1237 of file atomic.

## ◆ atomic_schar

typedef atomic<signed char> std::atomic_schar

atomic_schar

Definition at line 1105 of file atomic.

## ◆ atomic_short

typedef atomic<short> std::atomic_short

atomic_short

Definition at line 1111 of file atomic.

## ◆ atomic_size_t

typedef atomic<size_t> std::atomic_size_t

atomic_size_t

Definition at line 1234 of file atomic.

## ◆ atomic_uchar

typedef atomic<unsigned char> std::atomic_uchar

atomic_uchar

Definition at line 1108 of file atomic.

## ◆ atomic_uint

typedef atomic<unsigned int> std::atomic_uint

atomic_uint

Definition at line 1120 of file atomic.

## ◆ atomic_uint16_t

typedef atomic<uint16_t> std::atomic_uint16_t

atomic_uint16_t

Definition at line 1162 of file atomic.

## ◆ atomic_uint32_t

typedef atomic<uint32_t> std::atomic_uint32_t

atomic_uint32_t

Definition at line 1168 of file atomic.

## ◆ atomic_uint64_t

typedef atomic<uint64_t> std::atomic_uint64_t

atomic_uint64_t

Definition at line 1174 of file atomic.

## ◆ atomic_uint8_t

typedef atomic<uint8_t> std::atomic_uint8_t

atomic_uint8_t

Definition at line 1156 of file atomic.

## ◆ atomic_uint_fast16_t

typedef atomic<uint_fast16_t> std::atomic_uint_fast16_t

atomic_uint_fast16_t

Definition at line 1212 of file atomic.

## ◆ atomic_uint_fast32_t

typedef atomic<uint_fast32_t> std::atomic_uint_fast32_t

atomic_uint_fast32_t

Definition at line 1218 of file atomic.

## ◆ atomic_uint_fast64_t

typedef atomic<uint_fast64_t> std::atomic_uint_fast64_t

atomic_uint_fast64_t

Definition at line 1224 of file atomic.

## ◆ atomic_uint_fast8_t

typedef atomic<uint_fast8_t> std::atomic_uint_fast8_t

atomic_uint_fast8_t

Definition at line 1206 of file atomic.

## ◆ atomic_uint_least16_t

typedef atomic<uint_least16_t> std::atomic_uint_least16_t

atomic_uint_least16_t

Definition at line 1187 of file atomic.

## ◆ atomic_uint_least32_t

typedef atomic<uint_least32_t> std::atomic_uint_least32_t

atomic_uint_least32_t

Definition at line 1193 of file atomic.

## ◆ atomic_uint_least64_t

typedef atomic<uint_least64_t> std::atomic_uint_least64_t

atomic_uint_least64_t

Definition at line 1199 of file atomic.

## ◆ atomic_uint_least8_t

typedef atomic<uint_least8_t> std::atomic_uint_least8_t

atomic_uint_least8_t

Definition at line 1181 of file atomic.

## ◆ atomic_uintmax_t

typedef atomic<uintmax_t> std::atomic_uintmax_t

atomic_uintmax_t

Definition at line 1243 of file atomic.

## ◆ atomic_uintptr_t

typedef atomic<uintptr_t> std::atomic_uintptr_t

atomic_uintptr_t

Definition at line 1231 of file atomic.

## ◆ atomic_ullong

typedef atomic<unsigned long long> std::atomic_ullong

atomic_ullong

Definition at line 1132 of file atomic.

## ◆ atomic_ulong

typedef atomic<unsigned long> std::atomic_ulong

atomic_ulong

Definition at line 1126 of file atomic.

## ◆ atomic_ushort

typedef atomic<unsigned short> std::atomic_ushort

atomic_ushort

Definition at line 1114 of file atomic.

## ◆ atomic_wchar_t

typedef atomic<wchar_t> std::atomic_wchar_t

atomic_wchar_t

Definition at line 1135 of file atomic.

## Enumeration Type Documentation

## ◆ memory_order

enum class std::memory_order : int
| strong

Enumeration for memory_order.

Definition at line 65 of file atomic_base.h.

## Function Documentation

## ◆ atomic_compare_exchange_strong() [1/2]

template<typename _ITp>

bool std::atomic_compare_exchange_strong | ( | atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > * | __i1,
|  | __atomic_val_t< _ITp > | __i2 )
| inlinenoexcept

Definition at line 1479 of file atomic.

## ◆ atomic_compare_exchange_strong() [2/2]

template<typename _ITp>

bool std::atomic_compare_exchange_strong | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > * | __i1,
|  | __atomic_val_t< _ITp > | __i2 )
| inlinenoexcept

Definition at line 1490 of file atomic.

## ◆ atomic_compare_exchange_strong_explicit() [1/2]

template<typename _ITp>

bool std::atomic_compare_exchange_strong_explicit | ( | atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > * | __i1,
|  | __atomic_val_t< _ITp > | __i2,
|  | memory_order | __m1,
|  | memory_order | __m2 )
| inlinenoexcept

Definition at line 1407 of file atomic.

## ◆ atomic_compare_exchange_strong_explicit() [2/2]

template<typename _ITp>

bool std::atomic_compare_exchange_strong_explicit | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > * | __i1,
|  | __atomic_val_t< _ITp > | __i2,
|  | memory_order | __m1,
|  | memory_order | __m2 )
| inlinenoexcept

Definition at line 1416 of file atomic.

## ◆ atomic_compare_exchange_weak() [1/2]

template<typename _ITp>

bool std::atomic_compare_exchange_weak | ( | atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > * | __i1,
|  | __atomic_val_t< _ITp > | __i2 )
| inlinenoexcept

Definition at line 1457 of file atomic.

## ◆ atomic_compare_exchange_weak() [2/2]

template<typename _ITp>

bool std::atomic_compare_exchange_weak | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > * | __i1,
|  | __atomic_val_t< _ITp > | __i2 )
| inlinenoexcept

Definition at line 1468 of file atomic.

## ◆ atomic_compare_exchange_weak_explicit() [1/2]

template<typename _ITp>

bool std::atomic_compare_exchange_weak_explicit | ( | atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > * | __i1,
|  | __atomic_val_t< _ITp > | __i2,
|  | memory_order | __m1,
|  | memory_order | __m2 )
| inlinenoexcept

Definition at line 1389 of file atomic.

## ◆ atomic_compare_exchange_weak_explicit() [2/2]

template<typename _ITp>

bool std::atomic_compare_exchange_weak_explicit | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > * | __i1,
|  | __atomic_val_t< _ITp > | __i2,
|  | memory_order | __m1,
|  | memory_order | __m2 )
| inlinenoexcept

Definition at line 1398 of file atomic.

## ◆ atomic_exchange() [1/2]

template<typename _ITp>

_ITp std::atomic_exchange | ( | atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1446 of file atomic.

## ◆ atomic_exchange() [2/2]

template<typename _ITp>

_ITp std::atomic_exchange | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1451 of file atomic.

## ◆ atomic_exchange_explicit() [1/2]

template<typename _ITp>

_ITp std::atomic_exchange_explicit | ( | atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1376 of file atomic.

## ◆ atomic_exchange_explicit() [2/2]

template<typename _ITp>

_ITp std::atomic_exchange_explicit | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1382 of file atomic.

## ◆ atomic_fetch_add() [1/2]

template<typename _ITp>

_ITp std::atomic_fetch_add | ( | atomic< _ITp > * | __a,
|  | __atomic_diff_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1631 of file atomic.

## ◆ atomic_fetch_add() [2/2]

template<typename _ITp>

_ITp std::atomic_fetch_add | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_diff_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1637 of file atomic.

## ◆ atomic_fetch_add_explicit() [1/2]

template<typename _ITp>

_ITp std::atomic_fetch_add_explicit | ( | atomic< _ITp > * | __a,
|  | __atomic_diff_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1531 of file atomic.

## ◆ atomic_fetch_add_explicit() [2/2]

template<typename _ITp>

_ITp std::atomic_fetch_add_explicit | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_diff_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1538 of file atomic.

## ◆ atomic_fetch_and() [1/2]

template<typename _ITp>

_ITp std::atomic_fetch_and | ( | __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1655 of file atomic.

## ◆ atomic_fetch_and() [2/2]

template<typename _ITp>

_ITp std::atomic_fetch_and | ( | volatile __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1661 of file atomic.

## ◆ atomic_fetch_and_explicit() [1/2]

template<typename _ITp>

_ITp std::atomic_fetch_and_explicit | ( | __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1559 of file atomic.

## ◆ atomic_fetch_and_explicit() [2/2]

template<typename _ITp>

_ITp std::atomic_fetch_and_explicit | ( | volatile __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1566 of file atomic.

## ◆ atomic_fetch_or() [1/2]

template<typename _ITp>

_ITp std::atomic_fetch_or | ( | __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1667 of file atomic.

## ◆ atomic_fetch_or() [2/2]

template<typename _ITp>

_ITp std::atomic_fetch_or | ( | volatile __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1673 of file atomic.

## ◆ atomic_fetch_or_explicit() [1/2]

template<typename _ITp>

_ITp std::atomic_fetch_or_explicit | ( | __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1573 of file atomic.

## ◆ atomic_fetch_or_explicit() [2/2]

template<typename _ITp>

_ITp std::atomic_fetch_or_explicit | ( | volatile __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1580 of file atomic.

## ◆ atomic_fetch_sub() [1/2]

template<typename _ITp>

_ITp std::atomic_fetch_sub | ( | atomic< _ITp > * | __a,
|  | __atomic_diff_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1643 of file atomic.

## ◆ atomic_fetch_sub() [2/2]

template<typename _ITp>

_ITp std::atomic_fetch_sub | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_diff_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1649 of file atomic.

## ◆ atomic_fetch_sub_explicit() [1/2]

template<typename _ITp>

_ITp std::atomic_fetch_sub_explicit | ( | atomic< _ITp > * | __a,
|  | __atomic_diff_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1545 of file atomic.

## ◆ atomic_fetch_sub_explicit() [2/2]

template<typename _ITp>

_ITp std::atomic_fetch_sub_explicit | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_diff_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1552 of file atomic.

## ◆ atomic_fetch_xor() [1/2]

template<typename _ITp>

_ITp std::atomic_fetch_xor | ( | __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1679 of file atomic.

## ◆ atomic_fetch_xor() [2/2]

template<typename _ITp>

_ITp std::atomic_fetch_xor | ( | volatile __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1685 of file atomic.

## ◆ atomic_fetch_xor_explicit() [1/2]

template<typename _ITp>

_ITp std::atomic_fetch_xor_explicit | ( | __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1587 of file atomic.

## ◆ atomic_fetch_xor_explicit() [2/2]

template<typename _ITp>

_ITp std::atomic_fetch_xor_explicit | ( | volatile __atomic_base< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1594 of file atomic.

## ◆ atomic_flag_clear() [1/2]

void std::atomic_flag_clear | ( | atomic_flag * | __a | ) |
| inlinenoexcept

Definition at line 1294 of file atomic.

## ◆ atomic_flag_clear() [2/2]

void std::atomic_flag_clear | ( | volatile atomic_flag * | __a | ) |
| inlinenoexcept

Definition at line 1298 of file atomic.

## ◆ atomic_flag_clear_explicit() [1/2]

void std::atomic_flag_clear_explicit | ( | atomic_flag * | __a,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1277 of file atomic.

## ◆ atomic_flag_clear_explicit() [2/2]

void std::atomic_flag_clear_explicit | ( | volatile atomic_flag * | __a,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1281 of file atomic.

## ◆ atomic_flag_test_and_set() [1/2]

bool std::atomic_flag_test_and_set | ( | atomic_flag * | __a | ) |
| inlinenoexcept

Definition at line 1286 of file atomic.

## ◆ atomic_flag_test_and_set() [2/2]

bool std::atomic_flag_test_and_set | ( | volatile atomic_flag * | __a | ) |
| inlinenoexcept

Definition at line 1290 of file atomic.

## ◆ atomic_flag_test_and_set_explicit() [1/2]

bool std::atomic_flag_test_and_set_explicit | ( | atomic_flag * | __a,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1247 of file atomic.

## ◆ atomic_flag_test_and_set_explicit() [2/2]

bool std::atomic_flag_test_and_set_explicit | ( | volatile atomic_flag * | __a,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1252 of file atomic.

## ◆ atomic_init() [1/2]

template<typename _ITp>

void std::atomic_init | ( | atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1343 of file atomic.

## ◆ atomic_init() [2/2]

template<typename _ITp>

void std::atomic_init | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1348 of file atomic.

## ◆ atomic_is_lock_free() [1/2]

template<typename _ITp>

bool std::atomic_is_lock_free | ( | const atomic< _ITp > * | __a | ) |
| inlinenoexcept

Definition at line 1333 of file atomic.

## ◆ atomic_is_lock_free() [2/2]

template<typename _ITp>

bool std::atomic_is_lock_free | ( | const volatile atomic< _ITp > * | __a | ) |
| inlinenoexcept

Definition at line 1338 of file atomic.

## ◆ atomic_load() [1/2]

template<typename _ITp>

_ITp std::atomic_load | ( | const atomic< _ITp > * | __a | ) |
| inlinenoexcept

Definition at line 1436 of file atomic.

## ◆ atomic_load() [2/2]

template<typename _ITp>

_ITp std::atomic_load | ( | const volatile atomic< _ITp > * | __a | ) |
| inlinenoexcept

Definition at line 1441 of file atomic.

## ◆ atomic_load_explicit() [1/2]

template<typename _ITp>

_ITp std::atomic_load_explicit | ( | const atomic< _ITp > * | __a,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1365 of file atomic.

## ◆ atomic_load_explicit() [2/2]

template<typename _ITp>

_ITp std::atomic_load_explicit | ( | const volatile atomic< _ITp > * | __a,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1370 of file atomic.

## ◆ atomic_signal_fence()

void std::atomic_signal_fence | ( | memory_order | __m | ) |
| inlinenoexcept

Definition at line 150 of file atomic_base.h.

## ◆ atomic_store() [1/2]

template<typename _ITp>

void std::atomic_store | ( | atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1426 of file atomic.

## ◆ atomic_store() [2/2]

template<typename _ITp>

void std::atomic_store | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i )
| inlinenoexcept

Definition at line 1431 of file atomic.

## ◆ atomic_store_explicit() [1/2]

template<typename _ITp>

void std::atomic_store_explicit | ( | atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1353 of file atomic.

## ◆ atomic_store_explicit() [2/2]

template<typename _ITp>

void std::atomic_store_explicit | ( | volatile atomic< _ITp > * | __a,
|  | __atomic_val_t< _ITp > | __i,
|  | memory_order | __m )
| inlinenoexcept

Definition at line 1359 of file atomic.

## ◆ atomic_thread_fence()

void std::atomic_thread_fence | ( | memory_order | __m | ) |
| inlinenoexcept

Definition at line 146 of file atomic_base.h.

## ◆ kill_dependency()

template<typename _Tp>

_Tp std::kill_dependency | ( | _Tp | __y | ) |
| inlinenoexcept

kill_dependency

Definition at line 156 of file atomic_base.h.

## ◆ operator&()

memory_order std::operator& | ( | memory_order | __m,
|  | __memory_order_modifier | __mod )
| constexprnoexcept

Definition at line 110 of file atomic_base.h.

## ◆ operator|()

memory_order std::operator| | ( | memory_order | __m,
|  | __memory_order_modifier | __mod )
| constexprnoexcept

Definition at line 104 of file atomic_base.h.

## Variable Documentation

## ◆ memory_order_acq_rel

memory_order std::memory_order_acq_rel
| inlineconstexpr

Definition at line 79 of file atomic_base.h.

## ◆ memory_order_acquire

memory_order std::memory_order_acquire
| inlineconstexpr

Definition at line 77 of file atomic_base.h.

## ◆ memory_order_consume

memory_order std::memory_order_consume
| inlineconstexpr

Definition at line 76 of file atomic_base.h.

## ◆ memory_order_relaxed

memory_order std::memory_order_relaxed
| inlineconstexpr

Definition at line 75 of file atomic_base.h.

## ◆ memory_order_release

memory_order std::memory_order_release
| inlineconstexpr

Definition at line 78 of file atomic_base.h.

## ◆ memory_order_seq_cst

memory_order std::memory_order_seq_cst
| inlineconstexpr

Definition at line 80 of file atomic_base.h.