|
MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
浮点类型的原子引用特化 更多...
#include <atomic_base.hpp>
Public 类型 | |
| using | value_type = Float |
| 值类型 | |
| using | difference_type = value_type |
| 差值类型 | |
Public 成员函数 | |
| atomic_ref_base (Float &value) | |
| 构造函数 | |
| Float | operator= (Float value) noexcept |
| 赋值运算符 | |
| operator Float () const noexcept | |
| 类型转换运算符 | |
| bool | is_lock_free () const noexcept |
| 检查是否支持无锁操作 | |
| void | store (Float value, const memory_order mo=memory_order_seq_cst) noexcept |
| 原子存储操作 | |
| Float | load (const memory_order mo=memory_order_seq_cst) const noexcept |
| 原子加载操作 | |
| Float | exchange (Float desire, const memory_order mo=memory_order_seq_cst) noexcept |
| 原子交换操作 | |
| bool | compare_exchange_weak (Float &expected, Float desire, const memory_order success, const memory_order failure) noexcept |
| 弱比较交换操作 | |
| bool | compare_exchange_strong (Float &expected, Float desire, const memory_order success, const memory_order failure) noexcept |
| 强比较交换操作 | |
| bool | compare_exchange_weak (Float &expected, Float desire, const memory_order mo=memory_order_seq_cst) noexcept |
| 简化版弱比较交换操作 | |
| bool | compare_exchange_strong (Float &expected, Float desire, const memory_order mo=memory_order_seq_cst) noexcept |
| 简化版强比较交换操作 | |
| MSTL_ALWAYS_INLINE void | wait (Float 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 | operator+= (value_type value) const noexcept |
| 加法赋值运算符 | |
| value_type | operator-= (value_type value) const noexcept |
| 减法赋值运算符 | |
静态 Public 属性 | |
| static constexpr size_t | required_alignment = alignof(Float) |
| 对齐需求 | |
| static constexpr bool | is_always_lock_free = _MSTL is_always_lock_free<sizeof(Float), required_alignment>() |
| 是否总是无锁 | |
浮点类型的原子引用特化
| Float | 浮点类型 |
在文件 atomic_base.hpp 第 3333 行定义.
|
inlineexplicit |
|
inlinenoexcept |
简化版强比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3459 行定义.
引用了 _MSTL, atomic_cmpexch_strong(), cmpexch_failure_order() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
强比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 3435 行定义.
引用了 _MSTL, atomic_cmpexch_strong() , 以及 success.
|
inlinenoexcept |
简化版弱比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3447 行定义.
引用了 _MSTL, atomic_cmpexch_weak(), cmpexch_failure_order() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
弱比较交换操作
| expected | 期望值 |
| desire | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 3422 行定义.
引用了 _MSTL, atomic_cmpexch_weak() , 以及 success.
|
inlinenoexcept |
原子交换操作
| desire | 要交换的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3410 行定义.
引用了 _MSTL, atomic_exchange_any() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
原子获取并添加操作
| value | 要添加的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3496 行定义.
引用了 _MSTL, atomic_fetch_add_any() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
原子获取并减去操作
| value | 要减去的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3506 行定义.
引用了 _MSTL, atomic_fetch_sub_any() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
|
inlinenoexcept |
原子加载操作
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3400 行定义.
引用了 _MSTL, atomic_load_any() , 以及 memory_order_seq_cst.
被这些函数引用 operator Float() , 以及 wait().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
原子存储操作
| value | 要存储的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3391 行定义.
引用了 _MSTL, atomic_store_any() , 以及 memory_order_seq_cst.
被这些函数引用 operator=().
|
inlinenoexcept |
等待值改变
| old | 期望的旧值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 3470 行定义.
引用了 _MSTL, atomic_wait_address_v(), load() , 以及 memory_order_seq_cst.