std::atomic_ref<T>:: operator++,++ (int) ,--,-- (int)
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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)
|
||||
|
atomic_ref::operator++
atomic_ref::operator++(int)
atomic_ref::operator--
atomic_ref::operator--(int)
|
||||
|
Operations for integral types
(except
bool
)
|
||||
| Constants | ||||
|
Nur bereitgestellt, wenn
T
ein integraler Typ außer
cv
bool
oder ein Objektzeigertyp ist
|
||
|
value_type operator
++
(
)
const
noexcept
;
|
(1) | (seit C++20) |
|
value_type operator
++
(
int
)
const
noexcept
;
|
(2) | (seit C++20) |
|
value_type operator
--
(
)
const
noexcept
;
|
(3) | (seit C++20) |
|
value_type operator
--
(
int
)
const
noexcept
;
|
(4) | (seit C++20) |
Erhöht oder verringert atomar den aktuellen Wert des referenzierten Objekts. Diese Operationen sind Read-Modify-Write-Operationen.
- Für vorzeichenbehaftete Ganzzahltypen ist die Arithmetik als Zweierkomplementdarstellung definiert. Es gibt keine undefinierten Ergebnisse.
- Für Zeiger-auf-Objekt-Typen kann das Ergebnis eine undefinierte Adresse sein, aber die Operationen haben ansonsten kein undefiniertes Verhalten. Das Programm ist fehlerhaft, wenn std:: remove_pointer_t < T > kein vollständiger Objekttyp ist.
Diese Überladungen nehmen nur an der Überladungsauflösung teil, wenn std:: is_const_v < T > false ist.
Inhaltsverzeichnis |
Rückgabewert
Hinweise
Im Gegensatz zu den meisten Prä-Inkrement- und Prä-Dekrement-Operatoren geben die Prä-Inkrement- und Prä-Dekrement-Operatoren für
atomic_ref
keine Referenz auf das modifizierte Objekt zurück. Sie geben stattdessen eine Kopie des gespeicherten Werts zurück.
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 | Inkrement- und Dekrementoperatoren waren bedeutungslos für const T |
eingeschränkt, um nur non-const
T
zu akzeptieren
|
Siehe auch
|
addiert atomar das Argument zum im referenzierten Objekt gespeicherten Wert und erhält den zuvor gehaltenen Wert
(öffentliche Elementfunktion) |
|
|
subtrahiert atomar das Argument vom im referenzierten Objekt gespeicherten Wert und erhält den zuvor gehaltenen Wert
(öffentliche Elementfunktion) |
|
|
addiert oder subtrahiert atomar vom referenzierten Wert
(öffentliche Elementfunktion) |
|
|
führt atomare bitweise UND-, ODER- und XOR-Operationen mit dem referenzierten Wert durch
(öffentliche Elementfunktion) |