atomic 结构

描述对类型 Ty的存储值的基本操作的对象。

template <class Ty>
struct atomic;

成员

公共构造函数

Name

说明

atomic::atomic 构造函数

构造一个基对象。

公共运算符

Name

说明

atomic::operator Ty 运算符

读取并返回该存储的值。(atomic::load 方法)

atomic::operator= 运算符

使用指定值替换存储的值。(atomic::store 方法)

atomic::operator++ Operator

递增存储的值。 仅使用由整型和指针专用化。

atomic::operator+= 运算符

为存储值添加指定值。 仅使用由整型和指针专用化。

atomic::operator-- 运算符

递减存储的值。 仅使用由整型和指针专用化。

atomic::operator-= 运算符

从存储的值减去指定的值。 仅使用由整型和指针专用化。

atomic::operator&= 运算符

对指定的值执行按位and 运算并存储该值 。 只使用完整的专业化。

atomic::operator|= 运算符

对指定的值执行按位or 运算并存储该值 。 只使用完整的专业化。

atomic::operator^= 运算符

对指定的值执行按位exclusive or 运算并存储该值 。 只使用完整的专业化。

公共方法

Name

说明

atomic::compare_exchange_strong 方法

对 this 执行atomic_compare_and_exchange 操作并返回结果。

atomic::compare_exchange_weak 方法

对 this 执行weak_atomic_compare_and_exchange 操作并返回结果。

atomic::fetch_add 方法

为存储值添加指定值。

atomic::fetch_and 方法

对指定的值执行按位and 运算并存储该值 。

atomic::fetch_or 方法

对指定的值执行按位or 运算并存储该值 。

atomic::fetch_sub 方法

从存储的值减去指定的值。

atomic::fetch_xor 方法

对指定的值执行按位exclusive or 运算并存储该值 。

atomic::is_lock_free 方法

指定在 this 的基本操作是否 任意的锁。 如果该类型的基本操作不使用锁,基类型是 任意的锁。

atomic::load 方法

读取并返回该存储的值。

atomic::store 方法

使用指定值替换存储的值。

备注

该类型 Ty 必须为 常用地可复制。 即使用 memcpy 复制其字节必须生成与原始对象相等的有效 Ty 对象。 compare_exchange_weakcompare_exchange_strong 成员函数使用 memcmp 确定两个 Ty 值是否相等。 这些功能将不使用 Ty-定义的 operator==atomic 的成员函数使用 memcpy 复制类型 Ty的值。

部分专用化,atomic<Ty *>,为所有指针类型存在。 从该文件中专用化允许向托管指针值增加或减少一个偏移。 算术运算采用类型 ptrdiff_t 的参数并根据 Ty 的大小使其与普通的地址算法一致。

专用化为除 bool的每个整型存在。 每个专用化对于基本算术和逻辑操作提供了一组丰富的方法。

atomic<char>

atomic<signed char>

atomic<unsigned char>

atomic<char16_t>

atomic<char32_t>

atomic<wchar_t>

atomic<short>

atomic<unsigned short>

atomic<int>

atomic<unsigned int>

atomic<long>

atomic<unsigned long>

atomic<long long>

atomic<unsigned long long>

集成专用化从相应的 **atomic_**integral 类型派生。 例如,atomic<unsigned int> 派生自 atomic_uint

要求

**标头:**原子

命名空间: std

请参见

参考

<atomic>

其他资源

C++ 标准库头文件