头文件

<atomic>

原子类型
原子类型是封装了一个值的类型,对其访问保证不会导致数据竞争,并且可用于同步不同线程之间的内存访问。

此头文件声明了两个 C++ 类,atomicatomic_flag,它们在自包含的类中实现了原子类型的所有特性。该头文件还声明了一整套与 C 语言中的原子支持兼容的 C 风格 类型和函数。


类型


C 风格原子类型

以下原子类型也在此头文件中定义;每种类型的行为都与 atomic 对所列包含类型的相应实例化相同。
包含类型原子类型描述
boolatomic_bool
charatomic_char用于基本整数类型的原子类型。
这些是 atomic 类模板相应完全特化的 typedef,或者是这种特化的基类。
signed charatomic_schar
unsigned charatomic_uchar
shortatomic_short
unsigned shortatomic_ushort
intatomic_int
unsigned intatomic_uint
longatomic_long
unsigned longatomic_ulong
long longatomic_llong
unsigned long longatomic_ullong
wchar_tatomic_wchar_t
char16_tatomic_char16_t
char32_tatomic_char32_t
intmax_tatomic_intmax_t用于基于宽度的整数(在 <cinttypes> 中定义的那些)的原子类型。
这些类型中的每一个都是上述用于基本整数类型的原子类型之一的别名,或者是使用扩展整数类型atomic 类模板的完全特化。

其中 N 是 8、16、32、64 或库支持的任何其他类型宽度之一。
uintmax_tatomic_uintmax_t
int_leastN_tatomic_int_leastN_t
uint_leastN_tatomic_uint_leastN_t
int_fastN_tatomic_int_fastN_t
uint_fastN_tatomic_uint_fastN_t
intptr_tatomic_intptr_t
uintptr_tatomic_uintptr_t
size_tatomic_size_t
ptrdiff_tatomic_ptrdiff_t

函数


原子对象函数 (C 风格)


原子标志函数 (C 风格)


宏函数


宏常量

与类型相关定义为
ATOMIC_BOOL_LOCK_FREEbool如果类型从不无锁,则为 0
如果类型有时无锁,则为 1
如果类型总是无锁,则为 2

atomic::is_lock_free 返回的值一致。
ATOMIC_CHAR_LOCK_FREEchar
signed char
unsigned char
ATOMIC_SHORT_LOCK_FREEshort
unsigned short
ATOMIC_INT_LOCK_FREEint
unsigned int
ATOMIC_LONG_LOCK_FREElong
unsigned long
ATOMIC_LLONG_LOCK_FREElong long
unsigned long long
ATOMIC_WCHAR_T_LOCK_FREEwchar_t
ATOMIC_CHAR16_T_LOCK_FREEchar16_t
ATOMIC_CHAR32_T_LOCK_FREEchar32_t
ATOMIC_POINTER_LOCK_FREEU*
(对于任何类型 U