|
| constexpr | atomic_base (const value_type ptr) noexcept |
| | 构造函数
|
| | operator value_type () const noexcept |
| | 类型转换运算符
|
|
| operator value_type () const volatile noexcept |
| | volatile版本的类型转换运算符
|
| value_type | operator= (const value_type ptr) noexcept |
| | 赋值运算符
|
|
value_type | operator= (const value_type ptr) volatile noexcept |
| | volatile版本的赋值运算符
|
| value_type | operator++ (int) noexcept |
| | 后置递增运算符
|
|
value_type | operator++ (int) volatile noexcept |
| | volatile版本的后置递增运算符
|
| value_type | operator-- (int) noexcept |
| | 后置递减运算符
|
|
value_type | operator-- (int) volatile noexcept |
| | volatile版本的后置递减运算符
|
| value_type | operator++ () noexcept |
| | 前置递增运算符
|
|
value_type | operator++ () volatile noexcept |
| | volatile版本的前置递增运算符
|
| value_type | operator-- () noexcept |
| | 前置递减运算符
|
|
value_type | operator-- () volatile noexcept |
| | volatile版本的前置递减运算符
|
| value_type | operator+= (const ptrdiff_t dest) noexcept |
| | 指针加法赋值运算符
|
|
value_type | operator+= (const ptrdiff_t dest) volatile noexcept |
| | volatile版本的指针加法赋值运算符
|
| value_type | operator-= (const ptrdiff_t dest) noexcept |
| | 指针减法赋值运算符
|
|
value_type | operator-= (const ptrdiff_t dest) volatile noexcept |
| | volatile版本的指针减法赋值运算符
|
| bool | is_lock_free () const noexcept |
| | 检查是否支持无锁操作
|
|
bool | is_lock_free () const volatile noexcept |
| | volatile版本的检查是否支持无锁操作
|
| MSTL_ALWAYS_INLINE void | store (const value_type ptr, const memory_order mo=memory_order_seq_cst) noexcept |
| | 原子存储指针操作
|
|
MSTL_ALWAYS_INLINE_INLINE void | store (const value_type ptr, const memory_order mo=memory_order_seq_cst) volatile noexcept |
| | volatile版本的原子存储指针操作
|
| MSTL_ALWAYS_INLINE value_type | load (const memory_order mo=memory_order_seq_cst) const noexcept |
| | 原子加载指针操作
|
|
MSTL_ALWAYS_INLINE_INLINE value_type | load (const memory_order mo=memory_order_seq_cst) const volatile noexcept |
| | volatile版本的原子加载指针操作
|
| MSTL_ALWAYS_INLINE value_type | exchange (const value_type ptr, const memory_order mo=memory_order_seq_cst) noexcept |
| | 原子交换指针操作
|
|
MSTL_ALWAYS_INLINE_INLINE value_type | exchange (const value_type ptr, const memory_order mo=memory_order_seq_cst) volatile noexcept |
| | volatile版本的原子交换指针操作
|
| MSTL_ALWAYS_INLINE bool | compare_exchange_weak (value_type &expected, value_type desired, const memory_order success, const memory_order failure) noexcept |
| | 弱比较交换指针操作
|
|
MSTL_ALWAYS_INLINE_INLINE bool | compare_exchange_weak (value_type &expected, value_type desired, const memory_order success, const memory_order failure) volatile noexcept |
| | volatile版本的弱比较交换指针操作
|
| MSTL_ALWAYS_INLINE bool | compare_exchange_weak (value_type &expected, value_type desired, const memory_order mo=memory_order_seq_cst) noexcept |
| | 简化版弱比较交换指针操作
|
|
MSTL_ALWAYS_INLINE bool | compare_exchange_weak (value_type &expected, value_type desired, const memory_order mo=memory_order_seq_cst) volatile noexcept |
| | volatile版本的简化版弱比较交换指针操作
|
| MSTL_ALWAYS_INLINE bool | compare_exchange_strong (value_type &expected, value_type desired, const memory_order success, const memory_order failure) noexcept |
| | 强比较交换指针操作
|
|
MSTL_ALWAYS_INLINE_INLINE bool | compare_exchange_strong (value_type &expected, value_type desired, const memory_order success, const memory_order failure) volatile noexcept |
| | volatile版本的强比较交换指针操作
|
| MSTL_ALWAYS_INLINE bool | compare_exchange_strong (value_type &expected, value_type desired, const memory_order mo=memory_order_seq_cst) noexcept |
| | 简化版强比较交换指针操作
|
|
MSTL_ALWAYS_INLINE bool | compare_exchange_strong (value_type &expected, value_type desired, const memory_order mo=memory_order_seq_cst) volatile noexcept |
| | volatile版本的简化版强比较交换指针操作
|
| MSTL_ALWAYS_INLINE void | wait (value_type 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 |
| | 通知所有等待线程
|
| MSTL_ALWAYS_INLINE value_type | fetch_add (const ptrdiff_t dest, const memory_order mo=memory_order_seq_cst) noexcept |
| | 原子获取并添加指针偏移
|
|
MSTL_ALWAYS_INLINE_INLINE value_type | fetch_add (const ptrdiff_t dest, const memory_order mo=memory_order_seq_cst) volatile noexcept |
| | volatile版本的原子获取并添加指针偏移
|
| MSTL_ALWAYS_INLINE value_type | fetch_sub (const ptrdiff_t dest, const memory_order mo=memory_order_seq_cst) noexcept |
| | 原子获取并减去指针偏移
|
|
MSTL_ALWAYS_INLINE_INLINE value_type | fetch_sub (const ptrdiff_t dest, const memory_order mo=memory_order_seq_cst) volatile noexcept |
| | volatile版本的原子获取并减去指针偏移
|
| value_type | operator&= (value_type value) noexcept |
| | 位与赋值运算符
|
| value_type | operator|= (value_type value) noexcept |
| | 位或赋值运算符
|
| value_type | operator^= (value_type value) noexcept |
| | 位异或赋值运算符
|
| MSTL_ALWAYS_INLINE value_type | fetch_and (value_type value, const memory_order mo=memory_order_seq_cst) noexcept |
| | 原子获取并与操作
|
| MSTL_ALWAYS_INLINE value_type | fetch_or (value_type value, const memory_order mo=memory_order_seq_cst) noexcept |
| | 原子获取并或操作
|
| MSTL_ALWAYS_INLINE value_type | fetch_xor (value_type value, const memory_order mo=memory_order_seq_cst) noexcept |
| | 原子获取并异或操作
|
template<typename T>
struct atomic_base< T * >
指针类型的原子操作特化
- 模板参数
-
提供指针类型的原子操作实现,支持指针算术运算。
在文件 atomic_base.hpp 第 2023 行定义.