原子结构

描述执行原子操作的存储的值类型的对象Ty。

template <class Ty>
struct atomic;

成员

Hh874651.collapse_all(zh-cn,VS.110).gif公共构造函数

名称

说明

atomic::atomic构造函数

构造一个原子的对象。

Hh874651.collapse_all(zh-cn,VS.110).gif公共运算符

名称

说明

atomic::operator Ty运算符

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

atomic::operator=运算符

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

atomic::operator++运算符

增加存储的值。只有使用整数和指针的专用化。

atomic::operator+=运算符

将指定的值添加到存储的值中。只有使用整数和指针的专用化。

atomic::operator--运算符

减少存储的值。只有使用整数和指针的专用化。

atomic::operator-=运算符

从存储的值指定的值中减去。只有使用整数和指针的专用化。

atomic::operator&=运算符

执行按位and上指定的值和存储的值。只有使用不可或缺的专用化。

atomic::operator|=运算符

执行按位or上指定的值和存储的值。只有使用不可或缺的专用化。

atomic::operator^=运算符

执行按位exclusive or上指定的值和存储的值。只有使用不可或缺的专用化。

Hh874651.collapse_all(zh-cn,VS.110).gif公共方法

名称

说明

atomic::compare_exchange_strong方法

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

atomic::compare_exchange_weak方法

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

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

要求

标题: 原子

命名空间: 标准

请参见

参考

<atomic>

其他资源

标头文件