atomic_fetch_sub 函数
从储存在 atomic 对象中的现有值中减去一个值。
template <class T> T* atomic_fetch_sub(
volatile atomic<T*> *Atom,
ptrdiff_t Value
) noexcept;
template <class T> T* atomic_fetch_sub(
atomic<T*> *Atom,
ptrdiff_t Value
) noexcept;
参数
Atom
指向atomic保存到类型 T 的指针的对象的指针。Value
一个 ptrdiff_t 类型的值。
返回值
在执行操作之前由原子对象包含的指针值。
备注
atomic_fetch_sub 函数执行 read-modify-write 操作,使用 memory_order_seq_cst memory_order 约束,自动从 Atom 中存储的值减去 Value。
当原子类型为 atomic_address,Value 具有类型 ptrdiff_t 且操作将已存储的指针作为 char * 处理。
此操作也为整数类型重载:
integral atomic_fetch_sub(
volatile atomic-integral * Atom, integral Value
) noexcept;
integral atomic_fetch_sub(
atomic-integral * Atom, integral Value
) noexcept;
要求
**标头:**原子
命名空间: std