|
NexusForce 1.0.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 |
| 赋值运算符 | |
| NEFORCE_NODISCARD | operator T () const noexcept |
| 类型转换运算符 | |
| NEFORCE_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 |
| 简化版强比较交换操作 | |
| NEFORCE_ALWAYS_INLINE void | wait (T old, const memory_order mo=memory_order_seq_cst) const noexcept |
| 等待值改变 | |
| NEFORCE_ALWAYS_INLINE void | notify_one () noexcept |
| 通知一个等待线程 | |
| NEFORCE_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 |
| 原子获取并异或操作 | |
| NEFORCE_ALWAYS_INLINE value_type | operator++ (int) noexcept |
| 后置递增运算符 | |
| NEFORCE_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) |
| 对齐需求 | |
整数类型的原子引用特化
| T | 整数类型 |
在文件 atomic_base.hpp 第 2646 行定义.
|
inlineexplicit |
构造函数
| value | 被引用的整数 |
在文件 atomic_base.hpp 第 2667 行定义.
引用了 NEFORCE_CONSTEXPR_ASSERT , 以及 required_alignment.
|
inlinenoexcept |
简化版强比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2765 行定义.
引用了 atomic_cmpexch_strong(), cmpexch_failure_order() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
强比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 2742 行定义.
引用了 atomic_cmpexch_strong() , 以及 success.
|
inlinenoexcept |
简化版弱比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2754 行定义.
引用了 atomic_cmpexch_weak(), cmpexch_failure_order() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
弱比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 2730 行定义.
引用了 atomic_cmpexch_weak() , 以及 success.
|
inlinenoexcept |
原子交换操作
| desire | 要交换的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2718 行定义.
引用了 atomic_exchange() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
原子获取并添加操作
| value | 要添加的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2794 行定义.
引用了 atomic_fetch_add() , 以及 memory_order_seq_cst.
被这些函数引用 operator++().
|
inlinenoexcept |
原子获取并与操作
| value | 要进行与操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2814 行定义.
引用了 atomic_fetch_and() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
原子获取并或操作
| value | 要进行或操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2824 行定义.
引用了 atomic_fetch_or() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
原子获取并减去操作
| value | 要减去的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2804 行定义.
引用了 atomic_fetch_sub() , 以及 memory_order_seq_cst.
被这些函数引用 operator--().
|
inlinenoexcept |
原子获取并异或操作
| value | 要进行异或操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2834 行定义.
引用了 atomic_fetch_xor() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
|
inlinenoexcept |
原子加载操作
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2710 行定义.
引用了 atomic_load() , 以及 memory_order_seq_cst.
被这些函数引用 operator T() , 以及 wait().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
原子存储操作
| value | 要存储的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2701 行定义.
引用了 atomic_store() , 以及 memory_order_seq_cst.
被这些函数引用 operator=().
|
inlinenoexcept |
等待值改变
| old | 期望的旧值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2774 行定义.
引用了 atomic_wait_address_v(), load() , 以及 memory_order_seq_cst.