Namespaces
Variants

std::atomic<T>:: operator&=,|=,^=

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
atomic< Integral > 특수화에서만 사용 가능한 멤버
T operator & = ( T arg ) noexcept ;
(1) (C++11부터)
T operator & = ( T arg ) volatile noexcept ;
(2) (C++11부터)
T operator | = ( T arg ) noexcept ;
(3) (C++11부터)
T operator | = ( T arg ) volatile noexcept ;
(4) (C++11부터)
T operator ^ = ( T arg ) noexcept ;
(5) (C++11부터)
T operator ^ = ( T arg ) volatile noexcept ;
(6) (C++11부터)

현재 값을 이전 값과 arg 를 포함한 연산 결과로 원자적으로 교체합니다. 이 연산은 읽기-수정-쓰기 연산입니다.

  • operator & = 원자적 비트 AND 연산을 수행합니다. 다음과 동일합니다: return fetch_and ( arg ) & arg ; .
  • operator | = 원자적 비트 OR 연산을 수행합니다. 다음과 동일합니다: return fetch_or ( arg ) | arg ; .
  • operator ^ = 원자적 비트 배타적 OR 연산을 수행합니다. 다음과 동일합니다: return fetch_xor ( arg ) ^ arg ; .

다음 경우에 사용이 권장되지 않습니다: std:: atomic < T > :: is_always_lock_free false 이고, volatile 오버로드가 오버로드 해결에 참여하는 경우.

(C++20부터)

목차

매개변수

arg - 산술 연산을 위한 인수

반환값

결과 값 (즉, 해당 멤버 함수의 효과가 적용되기 직전의 값과 해당 이진 연산자를 적용한 결과로, modification order 에서 * this 의 값에 대한 연산 결과).

참고 사항

대부분의 복합 할당 연산자와 달리, 원자 타입에 대한 복합 할당 연산자는 왼쪽 인수에 대한 참조를 반환하지 않습니다. 대신 저장된 값의 복사본을 반환합니다.

참고 항목

인수와 원자 객체의 값 사이에 비트 AND 연산을 원자적으로 수행하고 이전에 보유한 값을 얻습니다
(public member function)
인수와 원자 객체의 값 사이에 비트 OR 연산을 원자적으로 수행하고 이전에 보유한 값을 얻습니다
(public member function)
인수와 원자 객체의 값 사이에 비트 XOR 연산을 원자적으로 수행하고 이전에 보유한 값을 얻습니다
(public member function)
원자 값을 1씩 증가시키거나 감소시킵니다
(public member function)
원자 값에 더하거나 원자 값에서 뺍니다
(public member function)