NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
atomic< T > 模板结构体 参考

通用原子类型模板 更多...

#include <atomic.hpp>

Public 类型

using value_type = T
 值类型

Public 成员函数

constexpr atomic (T value) noexcept
 构造函数
 operator T () const noexcept
 类型转换运算符
 operator T () const volatile noexcept
 volatile版本的类型转换运算符
operator= (T value) noexcept
 赋值运算符
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版本的原子存储操作
load (const memory_order mo=memory_order_seq_cst) const noexcept
 原子加载操作
load (const memory_order mo=memory_order_seq_cst) const volatile noexcept
 volatile版本的原子加载操作
exchange (T value, const memory_order mo=memory_order_seq_cst) noexcept
 原子交换操作
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版本的简化版强比较交换操作

详细描述

template<typename T>
struct atomic< T >

通用原子类型模板

模板参数
T值类型

提供通用类型的原子操作,支持任意可平凡复制的类型。

在文件 atomic.hpp37 行定义.

构造及析构函数说明

◆ atomic()

template<typename T>
atomic< T >::atomic ( T value)
inlineconstexprnoexcept

构造函数

参数
value初始值

在文件 atomic.hpp66 行定义.

成员函数说明

◆ compare_exchange_strong() [1/2]

template<typename T>
bool atomic< T >::compare_exchange_strong ( T & expected,
T desired,
const memory_order success,
const memory_order failure )
inlinenoexcept

◆ compare_exchange_strong() [2/2]

template<typename T>
bool atomic< T >::compare_exchange_strong ( T & expected,
T value,
const memory_order mo = memory_order_seq_cst )
inlinenoexcept

简化版强比较交换操作

参数
expected期望值
value期望设置的值
mo内存顺序
返回
是否交换成功

在文件 atomic.hpp231 行定义.

引用了 cmpexch_failure_order(), compare_exchange_strong() , 以及 memory_order_seq_cst.

◆ compare_exchange_weak() [1/2]

template<typename T>
bool atomic< T >::compare_exchange_weak ( T & expected,
T desired,
const memory_order mo = memory_order_seq_cst )
inlinenoexcept

简化版弱比较交换操作

参数
expected期望值
desired期望设置的值
mo内存顺序
返回
是否交换成功

在文件 atomic.hpp188 行定义.

引用了 cmpexch_failure_order(), compare_exchange_weak() , 以及 memory_order_seq_cst.

◆ compare_exchange_weak() [2/2]

template<typename T>
bool atomic< T >::compare_exchange_weak ( T & expected,
T desired,
const memory_order success,
const memory_order failure )
inlinenoexcept

弱比较交换操作

参数
expected期望值
desired期望设置的值
success成功时的内存顺序
failure失败时的内存顺序
返回
是否交换成功

在文件 atomic.hpp166 行定义.

引用了 addressof(), atomic_cmpexch_weak_any(), is_valid_cmpexch_failure_order(), NEFORCE_CONSTEXPR_ASSERT , 以及 success.

被这些函数引用 compare_exchange_weak() , 以及 compare_exchange_weak().

◆ exchange()

template<typename T>
T atomic< T >::exchange ( T value,
const memory_order mo = memory_order_seq_cst )
inlinenoexcept

原子交换操作

参数
value要交换的值
mo内存顺序
返回
交换前的值

在文件 atomic.hpp147 行定义.

引用了 addressof(), atomic_exchange_any() , 以及 memory_order_seq_cst.

被这些函数引用 lock_free_queue< T >::pop() , 以及 lock_free_queue< T >::try_pop().

◆ is_lock_free()

template<typename T>
bool atomic< T >::is_lock_free ( ) const
inlinenoexcept

检查是否支持无锁操作

返回
是否支持无锁

在文件 atomic.hpp102 行定义.

引用了 is_always_lock_free().

◆ load()

◆ operator T()

template<typename T>
atomic< T >::operator T ( ) const
inlinenoexcept

类型转换运算符

返回
当前值

在文件 atomic.hpp73 行定义.

◆ operator=()

template<typename T>
T atomic< T >::operator= ( T value)
inlinenoexcept

赋值运算符

参数
value要设置的值
返回
设置后的值

在文件 atomic.hpp85 行定义.

引用了 store().

◆ store()

template<typename T>
void atomic< T >::store ( T value,
const memory_order mo = memory_order_seq_cst )
inlinenoexcept

原子存储操作

参数
value要存储的值
mo内存顺序

在文件 atomic.hpp114 行定义.

引用了 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=().


该结构体的文档由以下文件生成: