std::atomic_ref<T>:: operator&=,|=,^=
From cppreference.net
<
cpp
|
atomic
|
atomic ref
C++
Concurrency support library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::atomic_ref
| Member functions | ||||
|
(C++26)
|
||||
|
Operations for arithmetic types
(except
bool
and pointer-to-object)
|
||||
|
Operations for integral types
(except
bool
and pointer-to-object)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
|
Operations for integral types
(except
bool
)
|
||||
|
atomic_ref::operator&=
atomic_ref::operator|=
atomic_ref::operator^=
|
||||
| Constants | ||||
T
가
cv
bool
이 아닌 정수형일 때만 제공됨
|
||
|
value_type operator
&
=
(
value_type arg
)
const
noexcept
;
|
(1) | (C++20부터) |
|
value_type operator
|
=
(
value_type arg
)
const
noexcept
;
|
(2) | (C++20부터) |
|
value_type operator
^
=
(
value_type arg
)
const
noexcept
;
|
(3) | (C++20부터) |
참조된 객체의 현재 값을 이전 값과 arg 를 포함한 연산 결과로 원자적으로 교체합니다. 이러한 연산들은 읽기-수정-쓰기 연산입니다.
- operator & = 원자적 비트 AND 연산을 수행합니다. 다음 코드와 동일합니다: return fetch_and ( arg ) & arg ; .
- operator ! = 원자적 비트 OR 연산을 수행합니다. 다음 코드와 동일합니다: return fetch_or ( arg ) | arg ; .
- operator ^ = 원자적 비트 XOR 연산을 수행합니다. 다음 코드와 동일합니다: return fetch_xor ( arg ) ^ arg ; .
이 오버로드들은 다음 조건에서만 오버로드 해결에 참여합니다: std:: is_const_v < T > 가 false 인 경우.
목차 |
매개변수
| arg | - | 산술 연산을 위한 인수 |
반환값
결과 값(즉, 해당 멤버 함수의 효과 바로 앞에 있는 값에 해당 이항 연산자를 적용한 결과).
참고 사항
대부분의 복합 할당 연산자와 달리,
atomic_ref
에 대한 복합 할당 연산자는 왼쪽 인수에 대한 참조를 반환하지 않습니다. 대신 저장된 값의 복사본을 반환합니다.
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
|
LWG 3508
( P3323R1 ) |
C++20 | 복합 할당 연산자가 const T 에 대해 무의미했음 |
non-const
T
만 허용하도록 제약됨
|
참고 항목
|
인수와 참조된 객체의 값 사이에 비트 AND를 원자적으로 수행하고 이전에 보유한 값을 획득합니다
(public member function) |
|
|
인수와 참조된 객체의 값 사이에 비트 OR를 원자적으로 수행하고 이전에 보유한 값을 획득합니다
(public member function) |
|
|
인수와 참조된 객체의 값 사이에 비트 XOR를 원자적으로 수행하고 이전에 보유한 값을 획득합니다
(public member function) |
|
|
참조된 객체를 원자적으로 1씩 증가 또는 감소시킵니다
(public member function) |
|
|
참조된 값에 원자적으로 더하거나 빼기를 수행합니다
(public member function) |