atomic::compare_exchange_strong 메서드
수행 된 원자 비교 및 교환 작업에서 *this.
bool compare_exchange_strong(
Ty& Exp,
Ty Value,
memory_order Order1,
memory_order Order2
) volatile _NOEXCEPT;
bool compare_exchange_strong(
Ty& Exp,
Ty Value,
memory_order Order1,
memory_order Order2
) _NOEXCEPT;
bool compare_exchange_strong(
Ty& Exp,
Ty Value,
memory_order Order1 = memory_order_seq_cst
) volatile _NOEXCEPT;
bool compare_exchange_strong(
Ty& Exp,
Ty Value,
memory_order Order1 = memory_order_seq_cst
) _NOEXCEPT;
매개 변수
Exp
Ty 형식의 값입니다.Value
Ty 형식의 값입니다.Order1
첫 번째 memory_order 인수.Order2
두 번째 memory_order 인수.
반환 값
A bool 는 값 비교의 결과 나타냅니다.
설명
이 원자 비교 및 교환 작업에 저장 된 값 비교 *this 와 Exp.값이 같으면 작업에 저장 된 값을 대체 *this 와 Val 사용 하는 read-modify-write 작업 및 메모리 적용 순서에서 지정 된 제약 조건 Order1.작업의 값이 같지 않으면 저장 된 값 사용 하 여 *this 바꾸려면 Exp 가 지정 된 메모리 순서 제약 조건을 적용 하 고 Order2.
초 하지 않은 오버 로드 memory_order 암시적 사용 Order2 의 값에 따라 Order1.Order1가 memory_order_acq_rel이면 Order2는 memory_order_acquire입니다.Order1가 memory_order_release이면 Order2는 memory_order_relaxed입니다.다른 모든 경우에 Order2 같지 Order1.
두 개를 사용 하는 오버 로드에 대 한 memory_order 매개 변수, 값 Order2 되지 않아야 memory_order_release 또는 memory_order_acq_rel, 값 보다 더 강력한 해야 Order1.
요구 사항
헤더: 원자
네임 스페이스: std