描述执行原子操作的存储的值类型的对象Ty。
template <class Ty>
struct atomic;
成员
公共构造函数
名称 |
说明 |
---|---|
构造一个原子的对象。 |
公共运算符
名称 |
说明 |
---|---|
读取并返回存储的值。(atomic::load方法) |
|
使用指定的值替换存储的值。(atomic::store方法) |
|
增加存储的值。只有使用整数和指针的专用化。 |
|
将指定的值添加到存储的值中。只有使用整数和指针的专用化。 |
|
减少存储的值。只有使用整数和指针的专用化。 |
|
从存储的值指定的值中减去。只有使用整数和指针的专用化。 |
|
执行按位and上指定的值和存储的值。只有使用不可或缺的专用化。 |
|
执行按位or上指定的值和存储的值。只有使用不可或缺的专用化。 |
|
执行按位exclusive or上指定的值和存储的值。只有使用不可或缺的专用化。 |
公共方法
名称 |
说明 |
---|---|
执行atomic_compare_and_exchange操作this ,并返回结果。 |
|
执行weak_atomic_compare_and_exchange操作this ,并返回结果。 |
|
将指定的值添加到存储的值中。 |
|
执行按位and上指定的值和存储的值。 |
|
执行按位or上指定的值和存储的值。 |
|
从存储的值指定的值中减去。 |
|
执行按位exclusive or上指定的值和存储的值。 |
|
指定是否在原子操作this是锁可用。原子类型是锁可用如果没有原子操作,在该类型上的使用的锁。 |
|
读取并返回存储的值。 |
|
使用指定的值替换存储的值。 |
备注
类型Ty必须是程序不再此。即,使用 memcpy 复制其字节必须生成一个有效Ty ,可以将与原始对象相同的对象。compare_exchange_weak和compare_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。
要求
标题: 原子
命名空间: 标准