Функция atomic_fetch_add
Добавляет значение к существующему значению, хранящемуся в объекте atomic.
template <class T> T* atomic_fetch_add(
volatile atomic<T*> *Atom,
ptrdiff_t Value
) noexcept;
template <class T> T* atomic_fetch_add(
atomic<T*> *Atom,
ptrdiff_t Value
) noexcept;
Параметры
Atom
Указатель на объект atomic, в котором хранится указатель на тип T.Value
Значение типа ptrdiff_t.
Возвращаемое значение
Значение указателя, содержавшееся в атомарном объекте непосредственно перед выполнением данной операции.
Заметки
Функция atomic_fetch_add выполняет операцию read-modify-write, чтобы атомарным образом добавить значение Value к хранимому значению в Atom, используя ограничение memory_order_seq_cst memory_order.
Если атомарный тип — atomic_address, параметр Value имеет тип ptrdiff_t и операция обрабатывает сохраненный указатель как char *.
Эта операция также перегружена для целочисленных типов:
integral atomic_fetch_add(
volatile atomic-integral * Atom, integral Value
) noexcept;
integral atomic_fetch_add(
atomic-integral * Atom, integral Value
) noexcept;
Требования
Заголовок: atomic
Пространство имен: std