Namensräume
Varianten
Aktionen

std::atomic_store, std::atomic_store_explicit

Von cppreference.com
< cpp‎ | atomic
 
 
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
atomic_storeatomic_store_explicit
(C++11)(C++11)
Freie Funktionen für atomare Flags
 
Definiert in Header <atomic>
template< class T >

void atomic_store( std::atomic<T>* obj,

                   typename std::atomic<T>::value_type desired ) noexcept;
(1) (seit C++11)
template< class T >

void atomic_store( volatile std::atomic<T>* obj,

                   typename std::atomic<T>::value_type desired ) noexcept;
(2) (seit C++11)
template< class T >

void atomic_store_explicit( std::atomic<T>* obj,
                            typename std::atomic<T>::value_type desired,

                            std::memory_order order) noexcept;
(3) (seit C++11)
template< class T >

void atomic_store_explicit( volatile std::atomic<T>* obj,
                            typename std::atomic<T>::value_type desired,

                            std::memory_order order) noexcept;
(4) (seit C++11)
1,2) Ersetzt atomar den Wert, auf den obj zeigt, durch den Wert von desired, als ob durch obj->store(desired).
3,4) Ersetzt atomar den Wert, auf den obj zeigt, durch den Wert von desired, als ob durch obj->store(desired, order).
Wenn order einer der Werte std::memory_order_consume, std::memory_order_acquire und std::memory_order_acq_rel ist, ist das Verhalten undefiniert.

Inhalt

[bearbeiten] Parameter

obj - Zeiger auf das zu modifizierende atomare Objekt
desired - Der zu speichernde Wert im atomaren Objekt
Reihenfolge - die Speicher-Synchronisationsreihenfolge

[bearbeiten] Rückgabewert

(keine)

[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
P0558R1 C++11 exakter Typabgleich war erforderlich, weil
T aus mehreren Argumenten abgeleitet wurde
T wird nur abgeleitet
von obj

[bearbeiten] Siehe auch

ersetzt atomar den Wert des atomaren Objekts durch ein nicht-atomares Argument
(öffentliche Memberfunktion von std::atomic<T>) [bearbeiten]
liest atomar den Wert aus einem atomaren Objekt
(Funktions-Template) [bearbeiten]
definiert Speicherordnungseinschränkungen für die gegebene atomare Operation
(Enum) [bearbeiten]
spezialisiert atomare Operationen für std::shared_ptr
(function template)
C-Dokumentation für atomic_store, atomic_store_explicit