|
MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
整数类型的原子引用特化 更多...
#include <atomic_base.hpp>
Public 类型 | |
| using | value_type = T |
| 值类型 | |
| using | difference_type = value_type |
| 差值类型 | |
Public 成员函数 | |
| atomic_ref_base (T &value) | |
| 构造函数 | |
| T | operator= (T value) noexcept |
| 赋值运算符 | |
| MSTL_NODISCARD | operator T () const noexcept |
| 类型转换运算符 | |
| MSTL_NODISCARD bool | is_lock_free () const noexcept |
| 检查是否支持无锁操作 | |
| void | store (T value, const memory_order mo=memory_order_seq_cst) noexcept |
| 原子存储操作 | |
| T | load (const memory_order mo=memory_order_seq_cst) const noexcept |
| 原子加载操作 | |
| T | exchange (T desire, const memory_order mo=memory_order_seq_cst) noexcept |
| 原子交换操作 | |
| bool | compare_exchange_weak (T &expected, T desire, const memory_order success, const memory_order failure) noexcept |
| 弱比较交换操作 | |
| bool | compare_exchange_strong (T &expected, T desire, const memory_order success, const memory_order failure) noexcept |
| 强比较交换操作 | |
| bool | compare_exchange_weak (T &expected, T desire, const memory_order mo=memory_order_seq_cst) noexcept |
| 简化版弱比较交换操作 | |
| bool | compare_exchange_strong (T &expected, T desire, const memory_order mo=memory_order_seq_cst) noexcept |
| 简化版强比较交换操作 | |
| MSTL_ALWAYS_INLINE void | wait (T old, const memory_order mo=memory_order_seq_cst) const noexcept |
| 等待值改变 | |
| MSTL_ALWAYS_INLINE void | notify_one () noexcept |
| 通知一个等待线程 | |
| MSTL_ALWAYS_INLINE void | notify_all () noexcept |
| 通知所有等待线程 | |
| value_type | fetch_add (value_type value, const memory_order mo=memory_order_seq_cst) noexcept |
| 原子获取并添加操作 | |
| value_type | fetch_sub (value_type value, const memory_order mo=memory_order_seq_cst) noexcept |
| 原子获取并减去操作 | |
| value_type | fetch_and (value_type value, const memory_order mo=memory_order_seq_cst) noexcept |
| 原子获取并与操作 | |
| value_type | fetch_or (value_type value, const memory_order mo=memory_order_seq_cst) noexcept |
| 原子获取并或操作 | |
| value_type | fetch_xor (value_type value, const memory_order mo=memory_order_seq_cst) noexcept |
| 原子获取并异或操作 | |
| MSTL_ALWAYS_INLINE value_type | operator++ (int) noexcept |
| 后置递增运算符 | |
| MSTL_ALWAYS_INLINE value_type | operator-- (int) noexcept |
| 后置递减运算符 | |
| value_type | operator++ () noexcept |
| 前置递增运算符 | |
| value_type | operator-- () noexcept |
| 前置递减运算符 | |
| value_type | operator+= (value_type value) noexcept |
| 加法赋值运算符 | |
| value_type | operator-= (value_type value) noexcept |
| 减法赋值运算符 | |
| value_type | operator&= (value_type value) noexcept |
| 位与赋值运算符 | |
| value_type | operator|= (value_type value) noexcept |
| 位或赋值运算符 | |
| value_type | operator^= (value_type value) noexcept |
| 位异或赋值运算符 | |
静态 Public 属性 | |
| static constexpr size_t | required_alignment = sizeof(T) > alignof(T) ? sizeof(T) : alignof(T) |
| 对齐需求 | |
| static constexpr bool | is_always_lock_free = _MSTL is_always_lock_free<sizeof(T), required_alignment>() |
| 是否总是无锁 | |
整数类型的原子引用特化
| T | 整数类型 |
在文件 atomic_base.hpp 第 3042 行定义.
|
inlineexplicit |
|
inlinenoexcept |
简化版强比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3169 行定义.
引用了 _MSTL, atomic_cmpexch_strong(), cmpexch_failure_order() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
强比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 3145 行定义.
引用了 _MSTL, atomic_cmpexch_strong() , 以及 success.
|
inlinenoexcept |
简化版弱比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3157 行定义.
引用了 _MSTL, atomic_cmpexch_weak(), cmpexch_failure_order() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
弱比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 3132 行定义.
引用了 _MSTL, atomic_cmpexch_weak() , 以及 success.
|
inlinenoexcept |
原子交换操作
| desire | 要交换的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3120 行定义.
引用了 _MSTL, atomic_exchange() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
原子获取并添加操作
| value | 要添加的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3206 行定义.
引用了 _MSTL, atomic_fetch_add() , 以及 memory_order_seq_cst.
被这些函数引用 operator++().
|
inlinenoexcept |
原子获取并与操作
| value | 要进行与操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3226 行定义.
引用了 _MSTL, atomic_fetch_and() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
原子获取并或操作
| value | 要进行或操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3236 行定义.
引用了 _MSTL, atomic_fetch_or() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
原子获取并减去操作
| value | 要减去的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3216 行定义.
引用了 _MSTL, atomic_fetch_sub() , 以及 memory_order_seq_cst.
被这些函数引用 operator--().
|
inlinenoexcept |
原子获取并异或操作
| value | 要进行异或操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3246 行定义.
引用了 _MSTL, atomic_fetch_xor() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
|
inlinenoexcept |
原子加载操作
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3110 行定义.
引用了 _MSTL, atomic_load() , 以及 memory_order_seq_cst.
被这些函数引用 operator T() , 以及 wait().
|
inlinenoexcept |
|
inlinenoexcept |
位与赋值运算符
| value | 要进行与操作的值 |
在文件 atomic_base.hpp 第 3305 行定义.
引用了 _MSTL , 以及 atomic_and_fetch().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
位异或赋值运算符
| value | 要进行异或操作的值 |
在文件 atomic_base.hpp 第 3323 行定义.
引用了 _MSTL , 以及 atomic_xor_fetch().
|
inlinenoexcept |
|
inlinenoexcept |
原子存储操作
| value | 要存储的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3101 行定义.
引用了 _MSTL, atomic_store() , 以及 memory_order_seq_cst.
被这些函数引用 operator=().
|
inlinenoexcept |
等待值改变
| old | 期望的旧值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3180 行定义.
引用了 _MSTL, atomic_wait_address_v(), load() , 以及 memory_order_seq_cst.