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