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


Функция 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

См. также

Ссылки

<atomic>

Структура atomic

Функция atomic_fetch_add_explicit