std::atomic_fetch_xor, std::atomic_fetch_xor_explicit
| Definiert in Header <atomic> |
||
| template< class T > T atomic_fetch_xor( std::atomic<T>* obj, |
(1) | (seit C++11) |
| template< class T > T atomic_fetch_xor( volatile std::atomic<T>* obj, |
(2) | (seit C++11) |
| template< class T > T atomic_fetch_xor_explicit( std::atomic<T>* obj, |
(3) | (seit C++11) |
| template< class T > T atomic_fetch_xor_explicit( volatile std::atomic<T>* obj, |
(4) | (seit C++11) |
Ersetzt atomar den Wert, auf den obj zeigt, durch das Ergebnis einer bitweisen XOR-Operation zwischen dem alten Wert von obj und arg. Gibt den Wert zurück, den obj zuvor enthielt.
Die Operation wird so ausgeführt, als ob Folgendes ausgeführt würde:
Wenn std::atomic<T> keine fetch_xor-Mitgliedfunktion hat (diese Mitgliedfunktion ist nur für ganzzahlige Typen außer bool bereitgestellt), ist das Programm schlecht geformt.
Inhalt |
[edit] Parameter
| obj | - | Zeiger auf das zu modifizierende atomare Objekt |
| arg | - | der Wert, der mit dem im atomaren Objekt gespeicherten Wert per bitweiser XOR-Operation verknüpft wird |
| Reihenfolge | - | die Speicher-Synchronisationsreihenfolge |
[edit] Rückgabewert
Der Wert, der den Effekten dieser Funktion in der Modifikationsreihenfolge von *obj unmittelbar vorausging.
[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] 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 |
|---|---|---|---|
| P0558R1 | C++11 | exakter Typabgleich war erforderlich, weilT aus mehreren Argumenten abgeleitet wurde |
T wird nur abgeleitetvon obj |
[edit] Siehe auch
| führt atomar eine bitweise XOR-Operation zwischen dem Argument und dem Wert des atomaren Objekts aus und erhält den zuvor gehaltenen Wert (öffentliche Mitgliedfunktion von std::atomic<T>) | |
| (C++11)(C++11) |
ersetzt das atomare Objekt durch das Ergebnis einer bitweisen OR-Operation mit einem nicht-atomaren Argument und gibt den vorherigen Wert des atomaren Objekts zurück (Funktions-Template) |
| (C++11)(C++11) |
ersetzt das atomare Objekt durch das Ergebnis einer bitweisen AND-Operation mit einem nicht-atomaren Argument und gibt den vorherigen Wert des atomaren Objekts zurück (Funktions-Template) |
| C-Dokumentation für atomic_fetch_xor, atomic_fetch_xor_explicit
| |