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

浮点数原子操作基础类 更多...

#include <atomic_base.hpp>

Public 类型

using value_type = Float
 值类型
using difference_type = value_type
 差值类型

Public 成员函数

constexpr atomic_float_base (Float value) noexcept(is_nothrow_copy_constructible_v< Float >)
 构造函数
Float operator= (Float value) noexcept
 赋值运算符
Float operator= (Float value) volatile noexcept
 volatile版本的赋值运算符
bool is_lock_free () const noexcept
 检查是否支持无锁操作
bool is_lock_free () const volatile noexcept
 volatile版本的检查是否支持无锁操作
void store (Float value, const memory_order mo=memory_order_seq_cst) noexcept
 原子存储操作
void store (Float value, const memory_order mo=memory_order_seq_cst) volatile noexcept
 volatile版本的原子存储操作
Float load (const memory_order mo=memory_order_seq_cst) const noexcept
 原子加载操作
Float load (const memory_order mo=memory_order_seq_cst) const volatile noexcept
 volatile版本的原子加载操作
 operator Float () const noexcept
 类型转换运算符
 operator Float () const volatile noexcept
 volatile版本的类型转换运算符
Float exchange (Float desire, const memory_order mo=memory_order_seq_cst) noexcept
 原子交换操作
Float exchange (Float desire, const memory_order mo=memory_order_seq_cst) volatile noexcept
 volatile版本的原子交换操作
bool compare_exchange_weak (Float &expected, Float desire, const memory_order success, const memory_order failure) noexcept
 弱比较交换操作
bool compare_exchange_weak (Float &expected, Float desire, const memory_order success, const memory_order failure) volatile noexcept
 volatile版本的弱比较交换操作
bool compare_exchange_strong (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) volatile noexcept
 volatile版本的强比较交换操作
bool compare_exchange_weak (Float &expected, Float desire, const memory_order mo=memory_order_seq_cst) noexcept
 简化版弱比较交换操作
bool compare_exchange_weak (Float &expected, Float desire, const memory_order mo=memory_order_seq_cst) volatile noexcept
 volatile版本的简化版弱比较交换操作
bool compare_exchange_strong (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) volatile noexcept
 volatile版本的简化版强比较交换操作
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_add (value_type value, const memory_order mo=memory_order_seq_cst) volatile noexcept
 volatile版本的原子获取并添加操作
value_type fetch_sub (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) volatile noexcept
 volatile版本的原子获取并减去操作
value_type operator+= (value_type value) noexcept
 加法赋值运算符
value_type operator+= (value_type value) volatile noexcept
 volatile版本的加法赋值运算符
value_type operator-= (value_type value) noexcept
 减法赋值运算符
value_type operator-= (value_type value) volatile noexcept
 volatile版本的减法赋值运算符

静态 Public 属性

static constexpr bool is_always_lock_free = _MSTL is_always_lock_free<sizeof(Float), alignof(Float)>()
 是否总是无锁

详细描述

template<typename Float>
struct atomic_float_base< Float >

浮点数原子操作基础类

模板参数
Float浮点类型

提供浮点类型的原子操作实现,支持加减运算。

在文件 atomic_base.hpp2589 行定义.

构造及析构函数说明

◆ atomic_float_base()

template<typename Float>
atomic_float_base< Float >::atomic_float_base ( Float value)
inlineconstexprnoexcept

构造函数

参数
value初始值

在文件 atomic_base.hpp2613 行定义.

成员函数说明

◆ fetch_add()

template<typename Float>
value_type atomic_float_base< Float >::fetch_add ( value_type value,
const memory_order mo = memory_order_seq_cst )
inlinenoexcept

原子获取并添加操作

参数
value要添加的值
mo内存顺序
返回
添加前的值

在文件 atomic_base.hpp2799 行定义.

引用了 _MSTL, atomic_fetch_add_any() , 以及 memory_order_seq_cst.

◆ fetch_sub()

template<typename Float>
value_type atomic_float_base< Float >::fetch_sub ( value_type value,
const memory_order mo = memory_order_seq_cst )
inlinenoexcept

原子获取并减去操作

参数
value要减去的值
mo内存顺序
返回
减去前的值

在文件 atomic_base.hpp2816 行定义.

引用了 _MSTL, atomic_fetch_sub_any() , 以及 memory_order_seq_cst.

◆ operator+=()

template<typename Float>
value_type atomic_float_base< Float >::operator+= ( value_type value)
inlinenoexcept

加法赋值运算符

参数
value要加的值
返回
加法后的值

在文件 atomic_base.hpp2832 行定义.

引用了 _MSTL , 以及 atomic_add_fetch_any().

◆ operator-=()

template<typename Float>
value_type atomic_float_base< Float >::operator-= ( value_type value)
inlinenoexcept

减法赋值运算符

参数
value要减的值
返回
减法后的值

在文件 atomic_base.hpp2848 行定义.

引用了 _MSTL , 以及 atomic_sub_fetch_any().

◆ wait()

template<typename Float>
MSTL_ALWAYS_INLINE void atomic_float_base< Float >::wait ( Float old,
const memory_order mo = memory_order_seq_cst ) const
inlinenoexcept

等待值改变

参数
old期望的旧值
mo内存顺序

在文件 atomic_base.hpp2773 行定义.

引用了 _MSTL, atomic_wait_address_v(), load() , 以及 memory_order_seq_cst.


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