Namensräume
Varianten
Aktionen

std::atomic_ref<T>::exchange

Von cppreference.com
< cpp‎ | atomic‎ | atomic ref
 
 
Bibliothek für nebenläufige Programmierung
Threads
(C++11)
(C++20)
this_thread Namespace
(C++11)
(C++11)
(C++11)
Kooperatives Beenden
Gegenseitiger Ausschluss
(C++11)
Allgemeines Sperrungsmanagement
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Bedingungsvariablen
(C++11)
Semaphoren
Latches und Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Sichere Wiederherstellung
(C++26)
Hazard Pointer
Atomare Typen
(C++11)
(C++20)
Initialisierung von atomaren Typen
(C++11)(veraltet in C++20)
(C++11)(veraltet in C++20)
Speicherordnung
(C++11)(deprecated in C++26)
Freie Funktionen für atomare Operationen
Freie Funktionen für atomare Flags
 
 
value_type exchange( value_type desired,

                     std::memory_order order =

                         std::memory_order_seq_cst ) const noexcept;
(constexpr seit C++26)

Atomar ersetzt den Wert des referenzierten Objekts durch desired. Die Operation ist eine Lese-Modifizierungs-Schreib-Operation. Der Speicher wird gemäß dem Wert von order beeinflusst.

Dieser Überladungsfall nimmt nur an der Überladungsauflösung teil, wenn std::is_const_v<T> false ist.

[bearbeiten] Parameter

desired - zuweisender Wert
Reihenfolge - Speicherreihenfolgebeschränkungen, die durchgesetzt werden sollen

[bearbeiten] Rückgabewert

Der Wert des referenzierten Objekts vor dem Aufruf.

[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 exchange war bedeutungslos für const T constrained to accept only non-const T