|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
通用原子类型模板 更多...
#include <atomic.hpp>
Public 类型 | |
| using | value_type = T |
| 值类型 | |
Public 成员函数 | |
| constexpr | atomic (T value) noexcept |
| 构造函数 | |
| operator T () const noexcept | |
| 类型转换运算符 | |
| operator T () const volatile noexcept | |
| volatile版本的类型转换运算符 | |
| T | operator= (T value) noexcept |
| 赋值运算符 | |
| T | operator= (T value) volatile noexcept |
| volatile版本的赋值运算符 | |
| bool | is_lock_free () const noexcept |
| 检查是否支持无锁操作 | |
| bool | is_lock_free () const volatile noexcept |
| volatile版本的检查是否支持无锁操作 | |
| void | store (T value, const memory_order mo=memory_order_seq_cst) noexcept |
| 原子存储操作 | |
| void | store (T value, const memory_order mo=memory_order_seq_cst) volatile noexcept |
| volatile版本的原子存储操作 | |
| T | load (const memory_order mo=memory_order_seq_cst) const noexcept |
| 原子加载操作 | |
| T | load (const memory_order mo=memory_order_seq_cst) const volatile noexcept |
| volatile版本的原子加载操作 | |
| T | exchange (T value, const memory_order mo=memory_order_seq_cst) noexcept |
| 原子交换操作 | |
| T | exchange (T value, const memory_order mo=memory_order_seq_cst) volatile noexcept |
| volatile版本的原子交换操作 | |
| bool | compare_exchange_weak (T &expected, T desired, const memory_order success, const memory_order failure) noexcept |
| 弱比较交换操作 | |
| bool | compare_exchange_weak (T &expected, T desired, const memory_order success, const memory_order failure) volatile noexcept |
| volatile版本的弱比较交换操作 | |
| bool | compare_exchange_weak (T &expected, T desired, const memory_order mo=memory_order_seq_cst) noexcept |
| 简化版弱比较交换操作 | |
| bool | compare_exchange_weak (T &expected, T desired, const memory_order mo=memory_order_seq_cst) volatile noexcept |
| volatile版本的简化版弱比较交换操作 | |
| bool | compare_exchange_strong (T &expected, T desired, const memory_order success, const memory_order failure) noexcept |
| 强比较交换操作 | |
| bool | compare_exchange_strong (T &expected, T desired, const memory_order success, const memory_order failure) volatile noexcept |
| volatile版本的强比较交换操作 | |
| bool | compare_exchange_strong (T &expected, T value, const memory_order mo=memory_order_seq_cst) noexcept |
| 简化版强比较交换操作 | |
| bool | compare_exchange_strong (T &expected, T value, const memory_order mo=memory_order_seq_cst) volatile noexcept |
| volatile版本的简化版强比较交换操作 | |
通用原子类型模板
| T | 值类型 |
提供通用类型的原子操作,支持任意可平凡复制的类型。
在文件 atomic.hpp 第 37 行定义.
|
inlineconstexprnoexcept |
|
inlinenoexcept |
强比较交换操作
| expected | 期望值 |
| desired | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic.hpp 第 207 行定义.
引用了 addressof(), atomic_cmpexch_strong_any(), is_valid_cmpexch_failure_order(), NEFORCE_CONSTEXPR_ASSERT , 以及 success.
被这些函数引用 once_flag::call_once, compare_exchange_strong(), compare_exchange_strong(), atomic< shared_ptr< T > >::compare_exchange_strong(), atomic< weak_ptr< T > >::compare_exchange_strong(), atomic< shared_ptr< T > >::compare_exchange_weak(), atomic< shared_ptr< T > >::compare_exchange_weak(), atomic< weak_ptr< T > >::compare_exchange_weak(), atomic< weak_ptr< T > >::compare_exchange_weak() , 以及 lock_free_queue< T >::push().
|
inlinenoexcept |
简化版强比较交换操作
| expected | 期望值 |
| value | 期望设置的值 |
| mo | 内存顺序 |
在文件 atomic.hpp 第 231 行定义.
引用了 cmpexch_failure_order(), compare_exchange_strong() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
简化版弱比较交换操作
| expected | 期望值 |
| desired | 期望设置的值 |
| mo | 内存顺序 |
在文件 atomic.hpp 第 188 行定义.
引用了 cmpexch_failure_order(), compare_exchange_weak() , 以及 memory_order_seq_cst.
|
inlinenoexcept |
弱比较交换操作
| expected | 期望值 |
| desired | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic.hpp 第 166 行定义.
引用了 addressof(), atomic_cmpexch_weak_any(), is_valid_cmpexch_failure_order(), NEFORCE_CONSTEXPR_ASSERT , 以及 success.
被这些函数引用 compare_exchange_weak() , 以及 compare_exchange_weak().
|
inlinenoexcept |
原子交换操作
| value | 要交换的值 |
| mo | 内存顺序 |
在文件 atomic.hpp 第 147 行定义.
引用了 addressof(), atomic_exchange_any() , 以及 memory_order_seq_cst.
被这些函数引用 lock_free_queue< T >::pop() , 以及 lock_free_queue< T >::try_pop().
|
inlinenoexcept |
|
inlinenoexcept |
原子加载操作
| mo | 内存顺序 |
在文件 atomic.hpp 第 130 行定义.
引用了 addressof(), atomic_load_any() , 以及 memory_order_seq_cst.
被这些函数引用 hazard_pointer_domain::acquire_record(), once_flag::call_once, get_current_task_group(), thread_tracker::is_single_threaded(), atomic< bool >::operator bool(), atomic< bool >::operator bool(), lock_free_queue< T >::pop(), hazard_pointer::protect(), lock_free_queue< T >::push(), thread_tracker::thread_count(), lock_free_queue< T >::try_pop(), hazard_pointer::try_protect() , 以及 hazard_pointer_domain::~hazard_pointer_domain().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
原子存储操作
| value | 要存储的值 |
| mo | 内存顺序 |
在文件 atomic.hpp 第 114 行定义.
引用了 addressof(), atomic_store_any() , 以及 memory_order_seq_cst.
被这些函数引用 hazard_pointer_domain::acquire_record(), once_flag::call_once, get_current_task_group(), operator=(), operator=() , 以及 atomic< shared_ptr< T > >::operator=().