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 & = выполняет атомарное побитовое И. Эквивалентно return fetch_and ( arg ) & arg ; .
  • operator | = выполняет атомарное побитовое ИЛИ. Эквивалентно return fetch_or ( arg ) | arg ; .
  • operator ^ = выполняет атомарное исключающее ИЛИ. Эквивалентно return fetch_xor ( arg ) ^ arg ; .

Устарело, если std:: atomic < T > :: is_always_lock_free равно false и любая перегрузка с volatile участвует в разрешении перегрузки.

(since C++20)

Содержание

Параметры

arg - аргумент для арифметической операции

Возвращаемое значение

Результирующее значение (то есть результат применения соответствующего бинарного оператора к значению, непосредственно предшествующему эффектам соответствующей функции-члена в порядке модификации объекта * this ).

Примечания

В отличие от большинства операторов составного присваивания, операторы составного присваивания для атомарных типов не возвращают ссылку на свой левый аргумент. Вместо этого они возвращают копию сохраненного значения.

Смотрите также

атомно выполняет побитовое И между аргументом и значением атомарного объекта и получает значение, хранившееся ранее
(public member function)
атомно выполняет побитовое ИЛИ между аргументом и значением атомарного объекта и получает значение, хранившееся ранее
(public member function)
атомно выполняет побитовое исключающее ИЛИ между аргументом и значением атомарного объекта и получает значение, хранившееся ранее
(public member function)
увеличивает или уменьшает атомарное значение на единицу
(public member function)
добавляет к атомарному значению или вычитает из него
(public member function)