|
MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
原子变量的操作 更多...
类型定义 | |
| using | atomic_bool = atomic<bool> |
| 布尔原子类型 | |
| using | atomic_schar = atomic<signed char> |
| 有符号字符原子类型 | |
| using | atomic_uchar = atomic<unsigned char> |
| 无符号字符原子类型 | |
| using | atomic_short = atomic<short> |
| 短整型原子类型 | |
| using | atomic_ushort = atomic<unsigned short> |
| 无符号短整型原子类型 | |
| using | atomic_int = atomic<int> |
| 整型原子类型 | |
| using | atomic_uint = atomic<unsigned int> |
| 无符号整型原子类型 | |
| using | atomic_long = atomic<long> |
| 长整型原子类型 | |
| using | atomic_ulong = atomic<unsigned long> |
| 无符号长整型原子类型 | |
| using | atomic_llong = atomic<long long> |
| 长长整型原子类型 | |
| using | atomic_ullong = atomic<unsigned long long> |
| 无符号长长整型原子类型 | |
| using | atomic_float = atomic<float> |
| 单精度浮点数原子类型 | |
| using | atomic_double = atomic<double> |
| 双精度浮点数原子类型 | |
| using | atomic_ldouble = atomic<long double> |
| 扩展精度浮点数原子类型 | |
| using | atomic_char = atomic<char> |
| 字符原子类型 | |
| using | atomic_wchar_t = atomic<wchar_t> |
| 宽字符原子类型 | |
| using | atomic_char16_t = atomic<char16_t> |
| UTF-16字符原子类型 | |
| using | atomic_char32_t = atomic<char32_t> |
| UTF-32字符原子类型 | |
| using | atomic_int8_t = atomic<int8_t> |
| 8位有符号整数原子类型 | |
| using | atomic_uint8_t = atomic<uint8_t> |
| 8位无符号整数原子类型 | |
| using | atomic_int16_t = atomic<int16_t> |
| 16位有符号整数原子类型 | |
| using | atomic_uint16_t = atomic<uint16_t> |
| 16位无符号整数原子类型 | |
| using | atomic_int32_t = atomic<int32_t> |
| 32位有符号整数原子类型 | |
| using | atomic_uint32_t = atomic<uint32_t> |
| 32位无符号整数原子类型 | |
| using | atomic_int64_t = atomic<int64_t> |
| 64位有符号整数原子类型 | |
| using | atomic_uint64_t = atomic<uint64_t> |
| 64位无符号整数原子类型 | |
| using | atomic_float32 = atomic<float32_t> |
| 32位浮点数原子类型 | |
| using | atomic_float64 = atomic<float64_t> |
| 64位浮点数原子类型 | |
| using | atomic_decimal = atomic<decimal_t> |
| 十进制浮点数原子类型 | |
| using | atomic_intptr_t = atomic<intptr_t> |
| 有符号指针整数原子类型 | |
| using | atomic_uintptr_t = atomic<uintptr_t> |
| 无符号指针整数原子类型 | |
| using | atomic_size_t = atomic<size_t> |
| 大小类型原子类型 | |
| using | atomic_ptrdiff_t = atomic<ptrdiff_t> |
| 指针差值类型原子类型 | |
| using | atomic_intmax_t = atomic<intmax_t> |
| 最大有符号整数原子类型 | |
| using | atomic_uintmax_t = atomic<uintmax_t> |
| 最大无符号整数原子类型 | |
| template<typename T> | |
| using | atomic_diff_t = conditional_t<is_pointer_v<T>, ptrdiff_t, remove_volatile_t<T>> |
| 原子操作的差值类型 | |
函数 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE void | atomic_store (volatile T *ptr, remove_volatile_t< T > value, const memory_order mo) noexcept |
| 原子存储操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_load (const volatile T *ptr, const memory_order mo) noexcept |
| 原子加载操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_exchange (volatile T *ptr, remove_volatile_t< T > value, const memory_order mo) noexcept |
| 原子交换操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE bool | atomic_cmpexch_weak (volatile T *ptr, remove_volatile_t< T > *expected, remove_volatile_t< T > desired, const memory_order success, const memory_order failure) noexcept |
| 弱比较交换操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE bool | atomic_cmpexch_strong (volatile T *ptr, remove_volatile_t< T > *expected, remove_volatile_t< T > desired, const memory_order success, const memory_order failure) noexcept |
| 强比较交换操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_fetch_add (volatile T *ptr, atomic_diff_t< T > value, const memory_order mo) noexcept |
| 原子获取并添加操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_fetch_sub (volatile T *ptr, atomic_diff_t< T > value, const memory_order mo) noexcept |
| 原子获取并减去操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_fetch_and (volatile T *ptr, remove_volatile_t< T > value, const memory_order mo) noexcept |
| 原子获取并与操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_fetch_or (volatile T *ptr, remove_volatile_t< T > value, const memory_order mo) noexcept |
| 原子获取并或操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_fetch_xor (volatile T *ptr, remove_volatile_t< T > value, const memory_order mo) noexcept |
| 原子获取并异或操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_add_fetch (volatile T *ptr, atomic_diff_t< T > value, memory_order mo) noexcept |
| 原子添加并获取操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_sub_fetch (volatile T *ptr, atomic_diff_t< T > value, memory_order mo) noexcept |
| 原子减去并获取操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_and_fetch (volatile T *ptr, remove_volatile_t< T > value, memory_order mo) noexcept |
| 原子与并获取操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_or_fetch (volatile T *ptr, remove_volatile_t< T > value, memory_order mo) noexcept |
| 原子或并获取操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_xor_fetch (volatile T *ptr, remove_volatile_t< T > value, memory_order mo) noexcept |
| 原子异或并获取操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE bool | atomic_cmpexch_weak_any (volatile T *ptr, remove_volatile_t< T > *expected, remove_volatile_t< T > *desired, const memory_order success, const memory_order failure) noexcept |
| 通用弱比较交换操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE bool | atomic_cmpexch_strong_any (volatile T *ptr, remove_volatile_t< T > *expected, remove_volatile_t< T > *desired, const memory_order success, const memory_order failure) noexcept |
| 通用强比较交换操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE void | atomic_store_any (T *ptr, remove_volatile_t< T > value, const memory_order mo) noexcept |
| 通用原子存储操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_load_any (const T *ptr, memory_order mo) noexcept |
| 通用原子加载操作 | |
| template<typename T> | |
| MSTL_ALWAYS_INLINE_INLINE remove_volatile_t< T > | atomic_exchange_any (T *ptr, remove_volatile_t< T > desired, memory_order mo) noexcept |
| 通用原子交换操作 | |
| template<typename T> | |
| T | atomic_fetch_add_any (T *ptr, remove_volatile_t< T > value, memory_order mo) noexcept |
| 通用原子获取并添加操作 | |
| template<typename T> | |
| T | atomic_fetch_sub_any (T *ptr, remove_volatile_t< T > value, memory_order mo) noexcept |
| 通用原子获取并减去操作 | |
| template<typename T> | |
| T | atomic_add_fetch_any (T *ptr, remove_volatile_t< T > value) noexcept |
| 通用原子添加并获取操作 | |
| template<typename T> | |
| T | atomic_sub_fetch_any (T *ptr, remove_volatile_t< T > value) noexcept |
| 通用原子减去并获取操作 | |
| template<size_t Size, size_t Align> | |
| constexpr bool | is_always_lock_free () noexcept |
| 检查是否支持无锁操作 | |
| template<typename T, typename Func, typename Clock, typename Dur> | |
| bool | atomic_wait_address_until_v (const T *addr, T &&old, Func &&func, const time_point< Clock, Dur > &timeout) noexcept |
| 基于值的原子定时等待(绝对时间) | |
| template<typename T, typename Pred, typename Clock, typename Dur> | |
| bool | atomic_wait_address_until (const T *addr, Pred pred, const time_point< Clock, Dur > &timeout) noexcept |
| 基于谓词的原子定时等待(绝对时间) | |
| template<typename Pred, typename Clock, typename Dur> | |
| bool | atomic_wait_address_until (const platform_wait_t *addr, Pred pred, const time_point< Clock, Dur > &timeout) noexcept |
| 基于谓词的原子定时等待(绝对时间) | |
| template<typename T, typename Func, typename Rep, typename Period> | |
| bool | atomic_wait_address_for_v (const T *addr, T &&old, Func &&func, const duration< Rep, Period > &rt) noexcept |
| 基于值的原子定时等待(相对时间) | |
| template<typename T, typename Pred, typename Rep, typename Period> | |
| bool | atomic_wait_address_for (const T *addr, Pred pred, const duration< Rep, Period > &rt) noexcept |
| 基于谓词的原子定时等待(相对时间) | |
| template<typename Pred, typename Rep, typename Period> | |
| bool | atomic_wait_address_for (const platform_wait_t *addr, Pred pred, const duration< Rep, Period > &rt) noexcept |
| 基于谓词的原子定时等待(相对时间) | |
| template<typename Pred, typename Spin = default_spin_policy> | |
| bool | atomic_spin (Pred &pred, Spin spin=Spin{}) noexcept |
| 原子自旋等待 | |
| template<typename T, typename Func> | |
| void | atomic_wait_address_v (const T *addr, T old, Func f) noexcept |
| 基于值的原子等待 | |
| template<typename T, typename Pred> | |
| void | atomic_wait_address (const T *addr, Pred pred) noexcept |
| 基于谓词的原子等待 | |
| template<typename T> | |
| void | atomic_notify_address (const T *addr, const bool all) noexcept |
| 原子通知 | |
原子变量的操作
| using atomic_diff_t = conditional_t<is_pointer_v<T>, ptrdiff_t, remove_volatile_t<T>> |
|
noexcept |
原子添加并获取操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 要添加的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 911 行定义.
引用了 _MSTL , 以及 atomic_fetch_add().
被这些函数引用 atomic_base< char >::operator++(), atomic_base< char >::operator++(), atomic_ref_base< T, true, false >::operator++(), atomic_base< char >::operator+=(), atomic_base< char >::operator+=() , 以及 atomic_ref_base< T, true, false >::operator+=().
|
noexcept |
通用原子添加并获取操作
| T | 浮点类型 |
| ptr | 目标指针 |
| value | 要添加的值 |
在文件 atomic_base.hpp 第 1286 行定义.
引用了 _MSTL, atomic_cmpexch_weak_any(), atomic_load(), memory_order_relaxed , 以及 memory_order_seq_cst.
被这些函数引用 atomic_float_base< Float >::operator+=(), atomic_float_base< Float >::operator+=() , 以及 atomic_ref_base< Float, false, true >::operator+=().
|
noexcept |
原子与并获取操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 要进行与操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 951 行定义.
引用了 _MSTL , 以及 atomic_fetch_and().
被这些函数引用 atomic_base< char >::operator&=(), atomic_base< char >::operator&=() , 以及 atomic_ref_base< T, true, false >::operator&=().
|
noexcept |
强比较交换操作
| T | 数据类型 |
| ptr | 目标指针 |
| expected | 期望值的指针 |
| desired | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 758 行定义.
引用了 _INNER, _MSTL, atomic_cmpexch_weak(), is_valid_cmpexch_failure_order() , 以及 success.
被这些函数引用 atomic_float_base< Float >::compare_exchange_strong(), atomic_float_base< Float >::compare_exchange_strong(), atomic_float_base< Float >::compare_exchange_strong(), atomic_float_base< Float >::compare_exchange_strong(), atomic_ref_base< Float, false, true >::compare_exchange_strong(), atomic_ref_base< Float, false, true >::compare_exchange_strong(), atomic_ref_base< T, false, false >::compare_exchange_strong(), atomic_ref_base< T, false, false >::compare_exchange_strong(), atomic_ref_base< T, true, false >::compare_exchange_strong() , 以及 atomic_ref_base< T, true, false >::compare_exchange_strong().
|
noexcept |
通用强比较交换操作
| T | 数据类型 |
| ptr | 目标指针 |
| expected | 期望值的指针 |
| desired | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 1140 行定义.
引用了 _INNER, is_valid_cmpexch_failure_order(), memory_order_seq_cst , 以及 success.
被这些函数引用 atomic< int8_t >::compare_exchange_strong(), atomic< int8_t >::compare_exchange_strong(), atomic_base< char >::compare_exchange_strong(), atomic_base< char >::compare_exchange_strong(), atomic_base< T * >::compare_exchange_strong() , 以及 atomic_base< T * >::compare_exchange_strong().
|
noexcept |
弱比较交换操作
| T | 数据类型 |
| ptr | 目标指针 |
| expected | 期望值的指针 |
| desired | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 630 行定义.
引用了 _INNER, is_valid_cmpexch_failure_order(), memory_order_seq_cst , 以及 success.
被这些函数引用 atomic_cmpexch_strong(), atomic_float_base< Float >::compare_exchange_weak(), atomic_float_base< Float >::compare_exchange_weak(), atomic_float_base< Float >::compare_exchange_weak(), atomic_float_base< Float >::compare_exchange_weak(), atomic_ref_base< Float, false, true >::compare_exchange_weak(), atomic_ref_base< Float, false, true >::compare_exchange_weak(), atomic_ref_base< T, false, false >::compare_exchange_weak(), atomic_ref_base< T, false, false >::compare_exchange_weak(), atomic_ref_base< T, true, false >::compare_exchange_weak() , 以及 atomic_ref_base< T, true, false >::compare_exchange_weak().
|
noexcept |
通用弱比较交换操作
| T | 数据类型 |
| ptr | 目标指针 |
| expected | 期望值的指针 |
| desired | 期望设置的值 |
| success | 成功时的内存顺序 |
| failure | 失败时的内存顺序 |
在文件 atomic_base.hpp 第 1014 行定义.
引用了 _INNER, is_valid_cmpexch_failure_order(), memory_order_seq_cst , 以及 success.
被这些函数引用 atomic_add_fetch_any(), atomic_exchange_any(), atomic_fetch_add_any(), atomic_fetch_sub_any(), atomic_store_any(), atomic_sub_fetch_any(), atomic< int8_t >::compare_exchange_weak(), atomic< int8_t >::compare_exchange_weak(), atomic_base< char >::compare_exchange_weak(), atomic_base< char >::compare_exchange_weak(), atomic_base< T * >::compare_exchange_weak() , 以及 atomic_base< T * >::compare_exchange_weak().
|
noexcept |
原子交换操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 交换的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 603 行定义.
引用了 _INNER , 以及 memory_order_seq_cst.
被这些函数引用 atomic_base< char >::exchange(), atomic_base< char >::exchange() , 以及 atomic_ref_base< T, true, false >::exchange().
|
noexcept |
通用原子交换操作
| T | 数据类型 |
| ptr | 目标指针 |
| desired | 要交换的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1227 行定义.
引用了 _MSTL, addressof(), atomic_cmpexch_weak_any(), atomic_load() , 以及 memory_order_relaxed.
被这些函数引用 atomic< int8_t >::exchange(), atomic< int8_t >::exchange(), atomic_float_base< Float >::exchange(), atomic_float_base< Float >::exchange(), atomic_ref_base< Float, false, true >::exchange() , 以及 atomic_ref_base< T, false, false >::exchange().
|
noexcept |
原子获取并添加操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 要添加的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 795 行定义.
引用了 _INNER , 以及 memory_order_seq_cst.
被这些函数引用 atomic_add_fetch(), atomic_fetch_sub(), atomic_base< char >::fetch_add(), atomic_base< char >::fetch_add(), atomic_base< T * >::fetch_add(), atomic_base< T * >::fetch_add(), atomic_ref_base< T, true, false >::fetch_add() , 以及 counting_semaphore< 1 >::release().
|
noexcept |
通用原子获取并添加操作
| T | 浮点类型 |
| ptr | 目标指针 |
| value | 要添加的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1251 行定义.
引用了 _MSTL, atomic_cmpexch_weak_any(), atomic_load() , 以及 memory_order_relaxed.
被这些函数引用 atomic_float_base< Float >::fetch_add(), atomic_float_base< Float >::fetch_add() , 以及 atomic_ref_base< Float, false, true >::fetch_add().
|
noexcept |
原子获取并与操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 要进行与操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 839 行定义.
引用了 _INNER , 以及 memory_order_seq_cst.
被这些函数引用 atomic_and_fetch(), atomic_base< char >::fetch_and(), atomic_base< char >::fetch_and() , 以及 atomic_ref_base< T, true, false >::fetch_and().
|
noexcept |
原子获取并或操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 要进行或操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 863 行定义.
引用了 _INNER , 以及 memory_order_seq_cst.
被这些函数引用 atomic_or_fetch(), atomic_base< char >::fetch_or(), atomic_base< char >::fetch_or() , 以及 atomic_ref_base< T, true, false >::fetch_or().
|
noexcept |
原子获取并减去操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 要减去的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 819 行定义.
引用了 _MSTL , 以及 atomic_fetch_add().
被这些函数引用 atomic_sub_fetch(), latch::count_down(), atomic_base< char >::fetch_sub(), atomic_base< char >::fetch_sub() , 以及 atomic_ref_base< T, true, false >::fetch_sub().
|
noexcept |
通用原子获取并减去操作
| T | 浮点类型 |
| ptr | 目标指针 |
| value | 要减去的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1269 行定义.
引用了 _MSTL, atomic_cmpexch_weak_any(), atomic_load() , 以及 memory_order_relaxed.
被这些函数引用 atomic_float_base< Float >::fetch_sub(), atomic_float_base< Float >::fetch_sub() , 以及 atomic_ref_base< Float, false, true >::fetch_sub().
|
noexcept |
原子获取并异或操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 要进行异或操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 887 行定义.
引用了 _INNER , 以及 memory_order_seq_cst.
被这些函数引用 atomic_xor_fetch(), atomic_base< char >::fetch_xor(), atomic_base< char >::fetch_xor() , 以及 atomic_ref_base< T, true, false >::fetch_xor().
|
noexcept |
原子加载操作
| T | 数据类型 |
| ptr | 源指针 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 579 行定义.
引用了 memory_order_acquire , 以及 memory_order_seq_cst.
被这些函数引用 atomic_add_fetch_any(), atomic_exchange_any(), atomic_fetch_add_any(), atomic_fetch_sub_any(), atomic_sub_fetch_any(), atomic_base< char >::load(), atomic_base< char >::load(), atomic_ref_base< T, true, false >::load() , 以及 latch::try_wait().
|
noexcept |
通用原子加载操作
| T | 数据类型 |
| ptr | 源指针 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1200 行定义.
引用了 _MSTL, memory_copy(), memory_order_acquire , 以及 memory_order_seq_cst.
被这些函数引用 atomic< int8_t >::load(), atomic< int8_t >::load(), atomic_float_base< Float >::load(), atomic_float_base< Float >::load(), atomic_ref_base< Float, false, true >::load() , 以及 atomic_ref_base< T, false, false >::load().
|
noexcept |
原子通知
| T | 地址类型 |
| addr | 原子变量地址 |
| all | 是否通知所有等待线程 |
唤醒等待addr处值变化的线程。 使用裸等待器。
在文件 atomic_wait.hpp 第 429 行定义.
引用了 _INNER.
被这些函数引用 latch::count_down(), atomic_base< char >::notify_all(), atomic_base< T * >::notify_all(), atomic_flag::notify_all(), atomic_float_base< Float >::notify_all(), atomic_ref_base< Float, false, true >::notify_all(), atomic_ref_base< T, false, false >::notify_all(), atomic_ref_base< T, true, false >::notify_all(), atomic_base< char >::notify_one(), atomic_base< T * >::notify_one(), atomic_flag::notify_one(), atomic_float_base< Float >::notify_one(), atomic_ref_base< Float, false, true >::notify_one(), atomic_ref_base< T, false, false >::notify_one(), atomic_ref_base< T, true, false >::notify_one() , 以及 counting_semaphore< 1 >::release().
|
noexcept |
原子或并获取操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 要进行或操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 971 行定义.
引用了 _MSTL , 以及 atomic_fetch_or().
被这些函数引用 atomic_base< char >::operator|=(), atomic_base< char >::operator|=() , 以及 atomic_ref_base< T, true, false >::operator|=().
|
noexcept |
原子自旋等待
| Pred | 谓词类型 |
| Spin | 自旋策略类型 |
| pred | 等待条件谓词,当返回true时停止等待 |
| spin | 自旋策略对象 |
实现自旋等待机制:
在文件 atomic_wait.hpp 第 47 行定义.
|
noexcept |
原子存储操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 存储的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 557 行定义.
引用了 _INNER, memory_order_release , 以及 memory_order_seq_cst.
被这些函数引用 atomic_flag::clear(), atomic_flag::clear(), atomic_base< char >::store(), atomic_base< char >::store() , 以及 atomic_ref_base< T, true, false >::store().
|
noexcept |
通用原子存储操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 要存储的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1179 行定义.
引用了 _MSTL, addressof(), atomic_cmpexch_weak_any() , 以及 memory_order_relaxed.
被这些函数引用 atomic< int8_t >::store(), atomic< int8_t >::store(), atomic_float_base< Float >::store(), atomic_float_base< Float >::store(), atomic_ref_base< Float, false, true >::store() , 以及 atomic_ref_base< T, false, false >::store().
|
noexcept |
原子减去并获取操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 要减去的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 931 行定义.
引用了 _MSTL , 以及 atomic_fetch_sub().
被这些函数引用 atomic_base< char >::operator--(), atomic_base< char >::operator--(), atomic_ref_base< T, true, false >::operator--(), atomic_base< char >::operator-=(), atomic_base< char >::operator-=() , 以及 atomic_ref_base< T, true, false >::operator-=().
|
noexcept |
通用原子减去并获取操作
| T | 浮点类型 |
| ptr | 目标指针 |
| value | 要减去的值 |
在文件 atomic_base.hpp 第 1303 行定义.
引用了 _MSTL, atomic_cmpexch_weak_any(), atomic_load(), memory_order_relaxed , 以及 memory_order_seq_cst.
被这些函数引用 atomic_float_base< Float >::operator-=(), atomic_float_base< Float >::operator-=() , 以及 atomic_ref_base< Float, false, true >::operator-=().
|
noexcept |
基于谓词的原子等待
| T | 地址类型 |
| Pred | 谓词类型 |
| addr | 原子变量地址 |
| pred | 等待条件谓词,当返回true时停止等待 |
等待直到pred()返回true。
在文件 atomic_wait.hpp 第 414 行定义.
引用了 _INNER.
被这些函数引用 counting_semaphore< 1 >::acquire(), latch::wait() , 以及 tree_barrier< CmplFunc >::wait().
|
noexcept |
基于谓词的原子定时等待(相对时间)
| Pred | 谓词类型 |
| Rep | 时间表示类型 |
| Period | 时间单位比例 |
| addr | 平台等待类型地址 |
| pred | 等待条件谓词 |
| rt | 相对超时时间 |
针对平台等待类型的特化版本,使用裸等待器。
在文件 atomic_timed_wait.hpp 第 492 行定义.
引用了 _INNER.
|
noexcept |
基于谓词的原子定时等待(相对时间)
| T | 地址类型 |
| Pred | 谓词类型 |
| Rep | 时间表示类型 |
| Period | 时间单位比例 |
| addr | 原子变量地址 |
| pred | 等待条件谓词 |
| rt | 相对超时时间 |
等待直到pred()返回true或经过指定时间。
在文件 atomic_timed_wait.hpp 第 473 行定义.
引用了 _INNER.
|
noexcept |
基于值的原子定时等待(相对时间)
| T | 值类型 |
| Func | 获取当前值的函数类型 |
| Rep | 时间表示类型 |
| Period | 时间单位比例 |
| addr | 原子变量地址 |
| old | 期望的值 |
| func | 获取当前值的函数 |
| rt | 相对超时时间 |
等待直到addr处的值不等于old或经过指定时间。
在文件 atomic_timed_wait.hpp 第 453 行定义.
引用了 _INNER.
|
noexcept |
基于谓词的原子定时等待(绝对时间)
| Pred | 谓词类型 |
| Clock | 时钟类型 |
| Dur | 持续时间类型 |
| addr | 平台等待类型地址 |
| pred | 等待条件谓词 |
| timeout | 超时时间点 |
针对平台等待类型的特化版本,使用裸等待器。
在文件 atomic_timed_wait.hpp 第 432 行定义.
|
noexcept |
基于谓词的原子定时等待(绝对时间)
| T | 地址类型 |
| Pred | 谓词类型 |
| Clock | 时钟类型 |
| Dur | 持续时间类型 |
| addr | 原子变量地址 |
| pred | 等待条件谓词 |
| timeout | 超时时间点 |
等待直到pred()返回true或超时。
在文件 atomic_timed_wait.hpp 第 413 行定义.
|
noexcept |
基于值的原子定时等待(绝对时间)
| T | 值类型 |
| Func | 获取当前值的函数类型 |
| Clock | 时钟类型 |
| Dur | 持续时间类型 |
| addr | 原子变量地址 |
| old | 期望的值 |
| func | 获取当前值的函数 |
| timeout | 超时时间点 |
等待直到addr处的值不等于old或超时。
在文件 atomic_timed_wait.hpp 第 393 行定义.
|
noexcept |
基于值的原子等待
| T | 值类型 |
| Func | 获取当前值的函数类型 |
| addr | 原子变量地址 |
| old | 期望的值 |
| f | 获取当前值的函数 |
等待直到addr处的值不等于old。
在文件 atomic_wait.hpp 第 399 行定义.
引用了 _INNER.
被这些函数引用 atomic_base< char >::wait(), atomic_base< T * >::wait(), atomic_flag::wait(), atomic_flag::wait(), atomic_float_base< Float >::wait(), atomic_ref_base< Float, false, true >::wait(), atomic_ref_base< T, false, false >::wait() , 以及 atomic_ref_base< T, true, false >::wait().
|
noexcept |
原子异或并获取操作
| T | 数据类型 |
| ptr | 目标指针 |
| value | 要进行异或操作的值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 991 行定义.
引用了 _MSTL , 以及 atomic_fetch_xor().
被这些函数引用 atomic_base< char >::operator^=(), atomic_base< char >::operator^=() , 以及 atomic_ref_base< T, true, false >::operator^=().