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


atomic_compare_exchange_weak_explicit функция

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

template <class Ty>
inline bool atomic_compare_exchange_weak_explicit(
   volatile atomic<Ty> *Atom,
   Ty *Exp,
   Ty Value,
   memory_order Order1,
   memory_order Order2
) _NOEXCEPT;
template <class Ty>
inline bool atomic_compare_exchange_weak_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.

Слабый атомарный сравнивает и операция обмена выполняет обмен, если сравниваемые значения равны.Однако если значения не равны, не гарантируется выполнение операции обмена.

Требования

Атомарный заголовок:

Std пространство имен:

См. также

Ссылки

<atomic>

атомарное строение