Namespaces
Variants

std::atomic_ref<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
Nur bereitgestellt, wenn T ein integraler Typ außer cv bool ist
value_type operator & = ( value_type arg ) const noexcept ;
(1) (seit C++20)
value_type operator | = ( value_type arg ) const noexcept ;
(2) (seit C++20)
value_type operator ^ = ( value_type arg ) const noexcept ;
(3) (seit C++20)

Ersetzt atomar den aktuellen Wert des referenzierten Objekts mit dem Ergebnis einer Berechnung unter Einbeziehung des vorherigen Werts und arg . Diese Operationen sind Read-Modify-Write-Operationen.

  • operator & = führt atomares bitweises UND aus. Entspricht return fetch_and ( arg ) & arg ; .
  • operator ! = führt atomares bitweises ODER aus. Entspricht return fetch_or ( arg ) | arg ; .
  • operator ^ = führt atomares bitweises XOR aus. Entspricht return fetch_xor ( arg ) ^ arg ; .

Diese Überladungen nehmen nur dann an der Überladungsauflösung teil, wenn std:: is_const_v < T > false ist.

Inhaltsverzeichnis

Parameter

arg - das Argument für die arithmetische Operation

Rückgabewert

Der resultierende Wert (das heißt, das Ergebnis der Anwendung des entsprechenden binären Operators auf den Wert unmittelbar vor den Effekten der entsprechenden Memberfunktion).

Hinweise

Im Gegensatz zu den meisten zusammengesetzten Zuweisungsoperatoren geben die zusammengesetzten Zuweisungsoperatoren für atomic_ref keine Referenz auf ihre linken Argumente zurück. Sie geben stattdessen eine Kopie des gespeicherten Werts zurück.

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 3508
( P3323R1 )
C++20 zusammengesetzte Zuweisungsoperatoren waren bedeutungslos für const T eingeschränkt, um nur non-const T zu akzeptieren

Siehe auch

führt atomar eine bitweise UND-Operation zwischen dem Argument und dem Wert des referenzierten Objekts durch und erhält den zuvor gehaltenen Wert
(öffentliche Elementfunktion)
führt atomar eine bitweise ODER-Operation zwischen dem Argument und dem Wert des referenzierten Objekts durch und erhält den zuvor gehaltenen Wert
(öffentliche Elementfunktion)
führt atomar eine bitweise XOR-Operation zwischen dem Argument und dem Wert des referenzierten Objekts durch und erhält den zuvor gehaltenen Wert
(öffentliche Elementfunktion)
erhöht oder verringert atomar das referenzierte Objekt um eins
(öffentliche Elementfunktion)
addiert oder subtrahiert atomar vom referenzierten Wert
(öffentliche Elementfunktion)