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

请参见

参考

<atomic>

atomic 结构

atomic_fetch_sub_explicit 函数