Функция 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 неделимым блоком, чтобы добавить Value на хранимый значение в Atom, с помощью ограничение memory_order_seq_cst memory_order.
Если атомарный тип — 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;
Требования
Заголовок: atomic
Пространство имен: std