std::atomic_ref<T>:: operator&=,|=,^=
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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 & = выполняет атомарное побитовое И. Эквивалентно return fetch_and ( arg ) & arg ; .
- operator ! = выполняет атомарное побитовое ИЛИ. Эквивалентно return fetch_or ( arg ) | arg ; .
- operator ^ = выполняет атомарное побитовое исключающее ИЛИ. Эквивалентно return fetch_xor ( arg ) ^ arg ; .
Эти перегрузки участвуют в разрешении перегрузки только если std:: is_const_v < T > равно false .
Содержание |
Параметры
| arg | - | аргумент для арифметической операции |
Возвращаемое значение
Результирующее значение (то есть результат применения соответствующего бинарного оператора к значению, непосредственно предшествующему эффектам соответствующей функции-члена).
Примечания
В отличие от большинства составных операторов присваивания, составные операторы присваивания для
atomic_ref
не возвращают ссылку на свои левосторонние аргументы. Вместо этого они возвращают копию сохраненного значения.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Отчёты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
|
LWG 3508
( P3323R1 ) |
C++20 | операторы составного присваивания были бессмысленны для const T |
ограничены для приема только неконстантного
T
|
Смотрите также
|
атомно выполняет побитовое И между аргументом и значением ссылаемого объекта и получает значение, хранившееся ранее
(public member function) |
|
|
атомно выполняет побитовое ИЛИ между аргументом и значением ссылаемого объекта и получает значение, хранившееся ранее
(public member function) |
|
|
атомно выполняет побитовое исключающее ИЛИ между аргументом и значением ссылаемого объекта и получает значение, хранившееся ранее
(public member function) |
|
|
атомно увеличивает или уменьшает ссылаемый объект на единицу
(public member function) |
|
|
атомно добавляет к ссылаемому значению или вычитает из него
(public member function) |