std::atomic<T>:: operator&=,|=,^=
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Constants | ||||
|
(C++17)
|
||||
| Specialized member functions | ||||
|
Specialized for integral,
floating-point (C++20) and pointer types |
||||
|
Specialized for integral and
pointer types only |
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
| Specialized for integral types only | ||||
|
atomic::operator&=
atomic::operator|=
atomic::operator^=
|
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) |