Поделиться через


Функция atomic_fetch_sub_explicit

Вычитает значение из существующего значения, хранящегося в объекте atomic.

template <class T> T* atomic_fetch_sub_explicit(
   volatile atomic<T*> *Atom,
   ptrdiff_t Value,
   memory_order Order
) noexcept;

template <class T> T* atomic_fetch_sub_explicit(
   atomic<T*> *Atom,
   ptrdiff_t Value,
   memory_order Order
) noexcept;

Параметры

  • Atom
    Указатель на объект atomic, в котором хранится указатель на тип T.

  • Value
    Значение типа ptrdiff_t.

Возвращаемое значение

Значение указателя, содержавшееся в атомарном объекте непосредственно перед выполнением данной операции.

Заметки

Функция atomic_fetch_sub_explicit выполняет операцию read-modify-write, чтобы атомарным образом вычесть значение Value из хранимого значения в Atom, в пределах ограничений memory_order, заданных параметром Order.

Если атомарный тип — atomic_address, параметр Value имеет тип ptrdiff_t и операция обрабатывает сохраненный указатель как char *.

Эта операция также перегружена для целочисленных типов:

integral atomic_fetch_sub_explicit(
    volatile atomic-integral * Atom, integral Value, memory_order Order
) noexcept;

integral atomic_fetch_sub_explicit(
    atomic-integral * Atom, integral Value, memory_order Order
) noexcept;

Требования

Заголовок: atomic

Пространство имен: std

См. также

Ссылки

<atomic>

Структура atomic

Функция atomic_fetch_sub