std::atomic_ref<T>::operator&=,|=,^=
| Nur bereitgestellt, wenn T ein ganzzahliger 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 durch das Ergebnis einer Berechnung, die den vorherigen Wert und arg beinhaltet. Diese Operationen sind Lese-Modifizierungs-Schreib-Operationen.
- operator&= führt eine atomare bitweise UND-Operation durch. Äquivalent zu return fetch_and(arg) & arg;.
- operator!= führt eine atomare bitweise ODER-Operation durch. Äquivalent zu return fetch_or(arg) | arg;.
- operator^= führt eine atomare bitweise XOR-Operation durch. Äquivalent zu return fetch_xor(arg) ^ arg;.
Diese Überladungen nehmen nur an der Overload-Auflösung teil, wenn std::is_const_v<T> false ist.
Inhalt |
[bearbeiten] Parameter
| arg | - | das Argument für die arithmetische Operation |
[bearbeiten] Rückgabewert
Der resultierende Wert (d.h. das Ergebnis der Anwendung des entsprechenden binären Operators auf den Wert unmittelbar vor den Auswirkungen der entsprechenden Member-Funktion).
[bearbeiten] Hinweise
Im Gegensatz zu den meisten zusammengesetzten Zuweisungsoperatoren geben die zusammengesetzten Zuweisungsoperatoren für atomic_ref keine Referenz auf ihre linken Argumente zurück. Stattdessen geben sie eine Kopie des gespeicherten Wertes zurück.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 3508 (P3323R1) |
C++20 | zusammengesetzte Zuweisungsoperatoren waren bedeutungslos für const T | constrained to accept only non-const T |
[bearbeiten] Siehe auch
| führt atomar eine bitweise UND-Operation zwischen dem Argument und dem Wert des referenzierten Objekts durch und gibt den zuvor gehaltenen Wert zurück (public member function) | |
| führt atomar eine bitweise ODER-Operation zwischen dem Argument und dem Wert des referenzierten Objekts durch und gibt den zuvor gehaltenen Wert zurück (public member function) | |
| führt atomar eine bitweise XOR-Operation zwischen dem Argument und dem Wert des referenzierten Objekts durch und gibt den zuvor gehaltenen Wert zurück (public member function) | |
| inkrementiert oder dekrementiert das referenzierte Objekt atomar um eins (öffentliche Memberfunktion) | |
| addiert oder subtrahiert atomar vom referenzierten Wert (öffentliche Memberfunktion) |