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


Функция atomic_fetch_add_explicit

Добавляет значение к существующему значению, хранящемуся в объекте atomic.

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

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

Параметры

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

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

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

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

Заметки

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

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

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

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

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

Требования

Заголовок: atomic

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

См. также

Ссылки

<atomic>

Структура atomic

Функция atomic_fetch_add