Namensräume
Varianten
Aktionen

std::atomic_init

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
atomic_init
(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
 
Definiert in Header <atomic>
template< class T >

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

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

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

      typename std::atomic<T>::value_type desired ) noexcept;
(2) (seit C++11)
(veraltet in C++20)

Initialisiert das standardkonstruierte atomare Objekt obj mit dem Wert desired. Die Funktion ist nicht atomar: Gleichzeitiger Zugriff von einem anderen Thread, selbst durch eine atomare Operation, ist ein Datenrennen.

Wenn obj nicht standardkonstruiert war, oder wenn diese Funktion zweimal auf dasselbe obj angewendet wird, ist das Verhalten undefiniert.

Inhalt

[bearbeiten] Parameter

obj - Zeiger auf ein zu initialisierendes atomares Objekt
desired - Der Wert, mit dem das atomare Objekt initialisiert werden soll

[bearbeiten] Rückgabewert

(keine)

[bearbeiten] Anmerkungen

Diese Funktion wird zur Kompatibilität mit C bereitgestellt. Wenn keine Kompatibilität erforderlich ist, kann std::atomic über seine Nicht-Standardkonstruktoren initialisiert werden.

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

[bearbeiten] Siehe auch

(C++11)(veraltet in C++20)
konstante Initialisierung einer atomaren Variable mit statischer Speicherdauer
(Funktionsmakro) [bearbeiten]
konstruiert ein atomares Objekt
(öffentliche Memberfunktion von std::atomic<T>) [bearbeiten]
C-Dokumentation für atomic_init