|
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 |
| 值类型 | |
Public 成员函数 | |
| atomic_ref_base (T &value) | |
| 构造函数 | |
| T | operator= (T value) noexcept |
| 赋值运算符 | |
| operator T () const noexcept | |
| 类型转换运算符 | |
| 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 |
| 通知所有等待线程 | |
静态 Public 属性 | |
| static constexpr size_t | required_alignment = align_inner > alignof(T) ? align_inner : alignof(T) |
| 对齐需求 | |
| static constexpr bool | is_always_lock_free = _MSTL is_always_lock_free<sizeof(T), required_alignment>() |
| 是否总是无锁 | |
通用类型的原子引用特化
| T | 可平凡复制类型 |
在文件 atomic_base.hpp 第 2879 行定义.
|
inlineexplicit |
|
inlinenoexcept |
简化版强比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3005 行定义.
引用了 _MSTL, atomic_cmpexch_strong(), cmpexch_failure_order() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
强比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 2981 行定义.
引用了 _MSTL, atomic_cmpexch_strong() , 以及 success.
|
inlinenoexcept |
简化版弱比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2993 行定义.
引用了 _MSTL, atomic_cmpexch_weak(), cmpexch_failure_order() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
弱比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 2968 行定义.
引用了 _MSTL, atomic_cmpexch_weak() , 以及 success.
|
inlinenoexcept |
原子交换操作
| desire | 要交换的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2956 行定义.
引用了 _MSTL, atomic_exchange_any() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
|
inlinenoexcept |
原子加载操作
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2946 行定义.
引用了 _MSTL, atomic_load_any() , 以及 memory_order_seq_cst.
被这些函数引用 operator T() , 以及 wait().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
原子存储操作
| value | 要存储的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 2937 行定义.
引用了 _MSTL, atomic_store_any() , 以及 memory_order_seq_cst.
被这些函数引用 operator=().
|
inlinenoexcept |
等待值改变
| old | 期望的旧值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3016 行定义.
引用了 _MSTL, atomic_wait_address_v(), load() , 以及 memory_order_seq_cst.