Namespaces
Variants

Standard library header <stdatomic.h> (C++23)

From cppreference.net
Standard library headers

此头文件最初属于C标准库( <stdatomic.h> )。

此头文件是 并发支持库 的组成部分。

是否在命名空间 std 中提供任何声明是未指定的。

目录

Macros

(C++23)
兼容性宏,使得 _Atomic ( T ) 等同于 std:: atomic < T >
(函数宏)
std::atomic_flag 初始化为 false
(宏常量)

类型

无锁布尔原子类型
(类)
定义给定原子操作的内存排序约束
(枚举类型)
std:: atomic < bool >
(typedef)
std:: atomic < char >
(类型别名)
std:: atomic < signed char >
(typedef)
std:: atomic < unsigned char >
(typedef)
std:: atomic < short >
(类型别名)
std:: atomic < unsigned short >
(类型别名)
(C++11)
std:: atomic < int >
(类型定义)
std:: atomic < unsigned int >
(typedef)
std:: atomic < long >
(类型定义)
std:: atomic < unsigned long >
(typedef)
std:: atomic < long long >
(类型别名)
std:: atomic < unsigned long long >
(类型别名)
std:: atomic < char8_t >
(类型别名)
std:: atomic < char16_t >
(类型别名)
std:: atomic < char32_t >
(类型别名)
std:: atomic < wchar_t >
(类型定义)
(C++11) (可选)
std:: atomic < std:: int8_t >
(类型别名)
(C++11) (可选)
std:: atomic < std:: uint8_t >
(类型别名)
(C++11) (可选)
std:: atomic < std:: int16_t >
(类型定义)
(C++11) (可选)
std:: atomic < std:: uint16_t >
(类型别名)
(C++11) (可选)
std:: atomic < std:: int32_t >
(类型别名)
(C++11) (可选)
std:: atomic < std:: uint32_t >
(类型别名)
(C++11) (可选)
std:: atomic < std:: int64_t >
(类型别名)
(C++11) (可选)
std:: atomic < std:: uint64_t >
(类型别名)
std:: atomic < std:: int_least8_t >
(类型别名)
std:: atomic < std:: uint_least8_t >
(类型别名)
std:: atomic < std:: int_least16_t >
(类型别名)
std:: atomic < std:: uint_least16_t >
(类型别名)
std:: atomic < std:: int_least32_t >
(类型别名)
std:: atomic < std:: uint_least32_t >
(类型别名)
std:: atomic < std:: int_least64_t >
(类型别名)
std:: atomic < std:: uint_least64_t >
(类型别名)
std:: atomic < std:: int_fast8_t >
(类型别名)
std:: atomic < std:: uint_fast8_t >
(类型别名)
std:: atomic < std:: int_fast16_t >
(类型别名)
std:: atomic < std:: uint_fast16_t >
(类型别名)
std:: atomic < std:: int_fast32_t >
(类型别名)
std:: atomic < std:: uint_fast32_t >
(类型别名)
std:: atomic < std:: int_fast64_t >
(类型定义)
std:: atomic < std:: uint_fast64_t >
(类型别名)
(C++11) (可选)
std:: atomic < std:: intptr_t >
(类型别名)
(C++11) (可选)
std:: atomic < std:: uintptr_t >
(类型别名)
std:: atomic < std:: size_t >
(类型别名)
std:: atomic < std:: ptrdiff_t >
(类型别名)
std:: atomic < std:: intmax_t >
(类型别名)
std:: atomic < std:: uintmax_t >
(类型别名)

函数

检查原子类型的操作是否无锁
(函数模板)
以非原子参数原子地替换原子对象的值
(函数模板)
以原子方式获取原子对象中存储的值
(函数模板)
以原子操作将原子对象的值替换为非原子参数,并返回该原子对象的旧值
(函数模板)
原子地比较原子对象与非原子参数的值,若相等则执行原子交换操作,否则执行原子加载操作
(函数模板)
将非原子值加到原子对象上并获取该原子对象的先前值
(函数模板)
从原子对象中减去非原子值并获取该原子对象的先前值
(函数模板)
将原子对象替换为与非原子参数进行按位与的结果,并获取该原子对象的先前值
(函数模板)
将原子对象替换为与非原子参数进行按位或操作的结果,并获取该原子对象的先前值
(函数模板)
将原子对象替换为与非原子参数进行按位异或的结果,并获取该原子对象的先前值
(函数模板)
以原子方式将标志设置为 true 并返回其先前值
(函数)
以原子方式将标志值设置为 false
(函数)
通用内存顺序相关的栅栏同步原语
(函数)
同一线程内线程与信号处理程序之间的隔离栅
(函数)

概要

template<class T>
  using __std_atomic = std::atomic<T>;        // 仅作展示用途
#define _Atomic(T) __std_atomic<T>
#define ATOMIC_BOOL_LOCK_FREE /* 参见描述 */
#define ATOMIC_CHAR_LOCK_FREE /* 查看描述 */
#define ATOMIC_CHAR16_T_LOCK_FREE /* 参见描述 */
#define ATOMIC_CHAR32_T_LOCK_FREE /* 参见描述 */
#define ATOMIC_WCHAR_T_LOCK_FREE /* 参见描述 */
#define ATOMIC_SHORT_LOCK_FREE /* 查看描述 */
#define ATOMIC_INT_LOCK_FREE /* 参见描述 */
#define ATOMIC_LONG_LOCK_FREE /* 参见描述 */
#define ATOMIC_LLONG_LOCK_FREE /* 见描述 */
#define ATOMIC_POINTER_LOCK_FREE /* 参见描述 */
using std::memory_order;                // 查看描述
using std::memory_order_relaxed;        // 查看描述
using std::memory_order_consume;        // 查看描述
using std::memory_order_acquire;        // 查看描述
using std::memory_order_release;        // 查看描述
using std::memory_order_acq_rel;        // 查看描述
using std::memory_order_seq_cst;        // 查看描述
using std::atomic_flag;                 // 查看描述
using std::atomic_bool;                 // 查看描述
using std::atomic_char;                 // 查看描述
using std::atomic_schar;                // 查看描述
using std::atomic_uchar;                // 查看描述
using std::atomic_short;                // 查看描述
using std::atomic_ushort;               // 查看描述
using std::atomic_int;                  // 查看描述
using std::atomic_uint;                 // 查看描述
using std::atomic_long;                 // 查看描述
using std::atomic_ulong;                // 查看描述
using std::atomic_llong;                // 查看描述
using std::atomic_ullong;               // 查看描述
using std::atomic_char8_t;              // 查看描述
using std::atomic_char16_t;             // 查看描述
using std::atomic_char32_t;             // 查看描述
using std::atomic_wchar_t;              // 查看描述
using std::atomic_int8_t;               // 查看描述
using std::atomic_uint8_t;              // 查看描述
using std::atomic_int16_t;              // 查看描述
using std::atomic_uint16_t;             // 查看描述
using std::atomic_int32_t;              // 查看描述
using std::atomic_uint32_t;             // 查看描述
using std::atomic_int64_t;              // 查看描述
using std::atomic_uint64_t;             // 查看描述
using std::atomic_int_least8_t;         // 查看描述
using std::atomic_uint_least8_t;        // 查看描述
using std::atomic_int_least16_t;        // 查看描述
using std::atomic_uint_least16_t;       // 查看描述
using std::atomic_int_least32_t;        // 查看描述
using std::atomic_uint_least32_t;       // 查看描述
using std::atomic_int_least64_t;        // 查看描述
using std::atomic_uint_least64_t;       // 查看描述
using std::atomic_int_fast8_t;          // 查看描述
using std::atomic_uint_fast8_t;         // 查看描述
using std::atomic_int_fast16_t;         // 查看描述
using std::atomic_uint_fast16_t;        // 查看描述
using std::atomic_int_fast32_t;         // 查看描述
using std::atomic_uint_fast32_t;        // 查看描述
using std::atomic_int_fast64_t;         // 查看描述
using std::atomic_uint_fast64_t;        // 查看描述
using std::atomic_intptr_t;             // 查看描述
using std::atomic_uintptr_t;            // 查看描述
using std::atomic_size_t;               // 查看描述
using std::atomic_ptrdiff_t;            // 查看描述
using std::atomic_intmax_t;             // 查看描述
using std::atomic_uintmax_t;            // 查看描述
using std::atomic_is_lock_free;                         // 查看描述
using std::atomic_load;                                 // 查看描述
using std::atomic_load_explicit;                        // 查看描述
using std::atomic_store;                                // 查看描述
using std::atomic_store_explicit;                       // 查看描述
using std::atomic_exchange;                             // 查看描述
using std::atomic_exchange_explicit;                    // 查看描述
using std::atomic_compare_exchange_strong;              // 查看描述
using std::atomic_compare_exchange_strong_explicit;     // 查看描述
using std::atomic_compare_exchange_weak;                // 查看描述
using std::atomic_compare_exchange_weak_explicit;       // 查看描述
using std::atomic_fetch_add;                            // 查看描述
using std::atomic_fetch_add_explicit;                   // 查看描述
using std::atomic_fetch_sub;                            // 查看描述
using std::atomic_fetch_sub_explicit;                   // 查看描述
using std::atomic_fetch_or;                             // 查看描述
using std::atomic_fetch_or_explicit;                    // 查看描述
using std::atomic_fetch_xor;                            // 查看描述
using std::atomic_fetch_xor_explicit;                   // 查看描述
using std::atomic_fetch_and;                            // 查看描述
using std::atomic_fetch_and_explicit;                   // 查看描述
using std::atomic_flag_test_and_set;                    // 查看描述
using std::atomic_flag_test_and_set_explicit;           // 查看描述
using std::atomic_flag_clear;                           // 查看描述
using std::atomic_flag_clear_explicit;                  // 查看描述
#define ATOMIC_FLAG_INIT /* 参见描述 */
using std::atomic_thread_fence;                         // 查看描述
using std::atomic_signal_fence;                         // 查看描述