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


Функция atomic_compare_exchange_strong_explicit

Выполняет операцию атомарный сравнивать и обмена.

template <class _Ty>
inline bool atomic_compare_exchange_strong_explicit(
   volatile atomic<Ty> *Atom,
   Ty *Exp,
   Ty Value,
   memory_order Order1,
   memory_order Order2
) _NOEXCEPT;

template <class Ty>
inline bool atomic_compare_exchange_strong_explicit(
   atomic<Ty> *Atom,
   Ty *Exp,
   Ty Value,
   memory_order Order1,
   memory_order Order2
) _NOEXCEPT;

Параметры

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

  • Exp
    Указатель на значение типа Ty.

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

  • Order1
    Первый аргумент memory_order.

  • Order2
    Второй аргумент memory_order. Значение Order2 не может быть memory_order_release или memory_order_acq_rel, он не может быть сильне меньше значения Order1.

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

bool, показывающее результат сравнения значения.

Заметки

атомарный сравнивать и операции обмена сравнивает значение, хранимое в объекте, который указан в Atom со значением, которое указано в Exp. Если значения равны, значения, хранящиеся в объекте, который указан в atom заменяется на Val с помощью операции read-modify-write и применения ограничений порядка памяти, определенные Order1. Если значения не равны, то операция заменяет значение, которая указана в Exp со значением, хранящийся в объекте, который указан в Atom и применяет ограничения порядка памяти, определенные Order2.

Требования

Заголовок: atomic

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

См. также

Ссылки

<atomic>

Структура atomic