다음을 통해 공유


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
    Ty 형식의 값을 저장하는 atomic 개체에 대한 포인터입니다.

  • Exp
    Ty 형식의 값에 대한 포인터.

  • Value
    Ty 형식의 값입니다.

  • Order1
    첫 번째 memory_order 인수.

  • Order2
    두 번째 memory_order 인수입니다. 이 Order2 의 값은 memory_order_release 혹은 memory_order_acq_rel 할 수 없습니다, 이는 Order1 의 값보다 더 강력할 수 없습니다.

반환 값

비교 값의 결과를 나타내는 bool 입니다.

설명

이 원자 비교 및 교환 작업 는 Exp 로 지정된 값에 반하여 Atom 로 지정된 개체로 저장된 값을 비교합니다. 값이 같으면, atom 로 지정된 개체의 저장된 값은 read-modify-write 동작을 사용하거나 Order1 로 지정된 메모리 순서 제약 조건을 적용함으로써 Val 로 대체됩니다. 만약 값이 같지 않으면, 동작은 Atom 로 지정되고 Order2 로 지정된 메모리 순서 제약 조건으로 개체로 저장된 값과 함께 Exp 로 지정된 값을 대체합니다.

요구 사항

헤더: atomic

네임스페이스: std

참고 항목

참조

<atomic>

atomic 구조체