Namespaces
Variants

Standard library header <stdatomic.h> (C++23)

From cppreference.net
Standard library headers

Dieser Header war ursprünglich in der C-Standardbibliothek ( <stdatomic.h> ).

Dieser Header ist Teil der Concurrency Support Bibliothek.

Es ist nicht spezifiziert, ob <stdatomic.h> Deklarationen im Namensraum std bereitstellt.

Inhaltsverzeichnis

Makros

(C++23)
Kompatibilitätsmakro, sodass _Atomic ( T ) identisch zu std:: atomic < T > ist
(Funktionsmakro)
initialisiert einen std::atomic_flag mit false
(Makrokonstante)

Typen

der lock-freie boolesche atomare Typ
(Klasse)
definiert Speicherreihenfolge-Einschränkungen für die gegebene atomare Operation
(enum)
std:: atomic < bool >
(typedef)
std:: atomic < char >
(Typedef)
std:: atomic < signed char >
(Typedef)
std:: atomic < unsigned char >
(typedef)
std:: atomic < short >
(typedef)
std:: atomic < unsigned short >
(typedef)
(C++11)
std:: atomic < int >
(typedef)
std:: atomic < unsigned int >
(typedef)
std:: atomic < long >
(typedef)
std:: atomic < unsigned long >
(typedef)
std:: atomic < long long >
(typedef)
std:: atomic < unsigned long long >
(typedef)
std:: atomic < char8_t >
(Typedef)
std:: atomic < char16_t >
(typedef)
std:: atomic < char32_t >
(typedef)
std:: atomic < wchar_t >
(Typedef)
(C++11) (optional)
std:: atomic < std:: int8_t >
(typedef)
(C++11) (optional)
std:: atomic < std:: uint8_t >
(typedef)
(C++11) (optional)
std:: atomic < std:: int16_t >
(typedef)
(C++11) (optional)
std:: atomic < std:: uint16_t >
(typedef)
(C++11) (optional)
std:: atomic < std:: int32_t >
(typedef)
(C++11) (optional)
std:: atomic < std:: uint32_t >
(typedef)
(C++11) (optional)
std:: atomic < std:: int64_t >
(typedef)
(C++11) (optional)
std:: atomic < std:: uint64_t >
(typedef)
std:: atomic < std:: int_least8_t >
(Typedef)
std:: atomic < std:: uint_least8_t >
(Typedef)
std:: atomic < std:: int_least16_t >
(Typedef)
std:: atomic < std:: uint_least16_t >
(Typedef)
std:: atomic < std:: int_least32_t >
(Typedef)
std:: atomic < std:: uint_least32_t >
(Typedef)
std:: atomic < std:: int_least64_t >
(Typedef)
std:: atomic < std:: uint_least64_t >
(Typedef)
std:: atomic < std:: int_fast8_t >
(typedef)
std:: atomic < std:: uint_fast8_t >
(Typedef)
std:: atomic < std:: int_fast16_t >
(Typedef)
std:: atomic < std:: uint_fast16_t >
(Typedef)
std:: atomic < std:: int_fast32_t >
(Typedef)
std:: atomic < std:: uint_fast32_t >
(Typedef)
std:: atomic < std:: int_fast64_t >
(typedef)
std:: atomic < std:: uint_fast64_t >
(typedef)
(C++11) (optional)
std:: atomic < std:: intptr_t >
(typedef)
(C++11) (optional)
std:: atomic < std:: uintptr_t >
(typedef)
std:: atomic < std:: size_t >
(Typedef)
std:: atomic < std:: ptrdiff_t >
(Typedef)
std:: atomic < std:: intmax_t >
(Typedef)
std:: atomic < std:: uintmax_t >
(Typedef)

Funktionen

prüft, ob die Operationen des atomaren Typs sperrfrei sind
(Funktions-Template)
ersetzt atomar den Wert des atomaren Objekts mit einem nicht-atomaren Argument
(Funktions-Template)
holt den Wert eines atomaren Objekts atomar
(Funktions-Template)
ersetzt atomar den Wert des atomaren Objekts mit dem nicht-atomaren Argument und gibt den alten Wert des atomaren Objekts zurück
(Funktionsschablone)
vergleicht atomar den Wert des atomaren Objekts mit einem nicht-atomaren Argument und führt einen atomaren Austausch durch, wenn gleich, oder eine atomare Ladung, wenn nicht gleich
(Funktionstemplate)
addiert einen nicht-atomaren Wert zu einem atomaren Objekt und erhält den vorherigen Wert des atomaren Objekts
(Funktions-Template)
subtrahiert einen nicht-atomaren Wert von einem atomaren Objekt und erhält den vorherigen Wert des atomaren Objekts
(Funktions-Template)
ersetzt das atomare Objekt mit dem Ergebnis der bitweisen UND-Verknüpfung mit einem nicht-atomaren Argument und erhält den vorherigen Wert des atomaren Objekts
(Funktions-Template)
ersetzt das atomare Objekt mit dem Ergebnis der bitweisen ODER-Verknüpfung mit einem nicht-atomaren Argument und erhält den vorherigen Wert des atomaren Objekts
(Funktionstemplate)
ersetzt das atomare Objekt mit dem Ergebnis der bitweisen XOR-Operation mit einem nicht-atomaren Argument und erhält den vorherigen Wert des atomaren Objekts
(Funktionstemplate)
setzt das Flag atomar auf true und gibt seinen vorherigen Wert zurück
(Funktion)
setzt den Wert des Flags atomar auf false
(Funktion)
generisches speicherreihenfolgenabhängiges Fence-Synchronisationsprimitive
(Funktion)
Sperre zwischen einem Thread und einem Signal-Handler, der im selben Thread ausgeführt wird
(Funktion)

Übersicht

template<class T>
  using __std_atomic = std::atomic<T>;        // exposition only
#define _Atomic(T) __std_atomic<T>
#define ATOMIC_BOOL_LOCK_FREE /* siehe Beschreibung */
#define ATOMIC_CHAR_LOCK_FREE /* Beschreibung siehe */
#define ATOMIC_CHAR16_T_LOCK_FREE /* siehe Beschreibung */
#define ATOMIC_CHAR32_T_LOCK_FREE /* Beschreibung siehe */
#define ATOMIC_WCHAR_T_LOCK_FREE /* siehe Beschreibung */
#define ATOMIC_SHORT_LOCK_FREE /* siehe Beschreibung */
#define ATOMIC_INT_LOCK_FREE /* Beschreibung siehe */
#define ATOMIC_LONG_LOCK_FREE /* siehe Beschreibung */
#define ATOMIC_LLONG_LOCK_FREE /* Beschreibung siehe */
#define ATOMIC_POINTER_LOCK_FREE /* siehe Beschreibung */
using std::memory_order;                // siehe Beschreibung
using std::memory_order_relaxed;        // siehe Beschreibung
using std::memory_order_consume;        // siehe Beschreibung
using std::memory_order_acquire;        // siehe Beschreibung
using std::memory_order_release;        // siehe Beschreibung
using std::memory_order_acq_rel;        // siehe Beschreibung
using std::memory_order_seq_cst;        // siehe Beschreibung
using std::atomic_flag;                 // siehe Beschreibung
using std::atomic_bool;                 // siehe Beschreibung
using std::atomic_char;                 // siehe Beschreibung
using std::atomic_schar;                // siehe Beschreibung
using std::atomic_uchar;                // siehe Beschreibung
using std::atomic_short;                // siehe Beschreibung
using std::atomic_ushort;               // siehe Beschreibung
using std::atomic_int;                  // siehe Beschreibung
using std::atomic_uint
(Die Übersetzung ist identisch zum Original, da gemäß den Anforderungen HTML-Tags, Code-Elemente und C++-spezifische Begriffe nicht übersetzt werden dürfen);                 // siehe Beschreibung
using std::atomic_long;                 // siehe Beschreibung
using std::atomic_ulong;                // siehe Beschreibung
using std::atomic_llong;                // siehe Beschreibung
using std::atomic_ullong;               // siehe Beschreibung
using std::atomic_char8_t;              // siehe Beschreibung
using std::atomic_char16_t;             // siehe Beschreibung
using std::atomic_char32_t;             // siehe Beschreibung
using std::atomic_wchar_t;              // siehe Beschreibung
using std::atomic_int8_t;               // siehe Beschreibung
using std::atomic_uint8_t;              // siehe Beschreibung
using std::atomic_int16_t;              // siehe Beschreibung
using std::atomic_uint16_t;             // siehe Beschreibung
using std::atomic_int32_t;              // siehe Beschreibung
using std::atomic_uint32_t;             // siehe Beschreibung
using std::atomic_int64_t;              // siehe Beschreibung
using std::atomic_uint64_t;             // siehe Beschreibung
using std::atomic_int_least8_t;         // siehe Beschreibung
using std::atomic_uint_least8_t
**Erklärung:**
- HTML-Tags und Attribute wurden unverändert beibehalten
- Der C++-Typname `std::atomic_uint_least8_t` wurde nicht übersetzt (gemäß der Anforderung)
- Die Link-Struktur und Formatierung bleiben erhalten
- Keine Übersetzung innerhalb der HTML-Tags durchgeführt;        // siehe Beschreibung
using std::atomic_int_least16_t;        // siehe Beschreibung
using std::atomic_uint_least16_t;       // siehe Beschreibung
using std::atomic_int_least32_t;        // siehe Beschreibung
using std::atomic_uint_least32_t;       // siehe Beschreibung
using std::atomic_int_least64_t;        // siehe Beschreibung
using std::atomic_uint_least64_t;       // siehe Beschreibung
using std::atomic_int_fast8_t;          // siehe Beschreibung
using std::atomic_uint_fast8_t;         // siehe Beschreibung
using std::atomic_int_fast16_t;         // siehe Beschreibung
using std::atomic_uint_fast16_t;        // siehe Beschreibung
using std::atomic_int_fast32_t;         // siehe Beschreibung
using std::atomic_uint_fast32_t;        // siehe Beschreibung
using std::atomic_int_fast64_t;         // siehe Beschreibung
using std::atomic_uint_fast64_t;        // siehe Beschreibung
using std::atomic_intptr_t;             // siehe Beschreibung
using std::atomic_uintptr_t
(Keine Übersetzung erforderlich, da der Text innerhalb der HTML-Tags gemäß den Anweisungen unverändert bleibt und keine übersetzbaren Inhalte außerhalb der geschützten Tags vorhanden sind);            // siehe Beschreibung
using std::atomic_size_t;               // siehe Beschreibung
using std::atomic_ptrdiff_t;            // siehe Beschreibung
using std::atomic_intmax_t;             // siehe Beschreibung
using std::atomic_uintmax_t;            // siehe Beschreibung
using std::atomic_is_lock_free;                         // siehe Beschreibung
using std::atomic_load;                                 // siehe Beschreibung
using std::atomic_load_explicit;                        // siehe Beschreibung
using std::atomic_store;                                // siehe Beschreibung
using std::atomic_store_explicit;                       // siehe Beschreibung
using std::atomic_exchange;                             // siehe Beschreibung
using std::atomic_exchange_explicit;                    // siehe Beschreibung
using std::atomic_compare_exchange_strong;              // siehe Beschreibung
using std::atomic_compare_exchange_strong_explicit;     // siehe Beschreibung
using std::atomic_compare_exchange_weak;                // siehe Beschreibung
using std::atomic_compare_exchange_weak_explicit;       // siehe Beschreibung
using std::atomic_fetch_add;                            // siehe Beschreibung
using std::atomic_fetch_add_explicit;                   // siehe Beschreibung
using std::atomic_fetch_sub;                            // siehe Beschreibung
using std::atomic_fetch_sub_explicit;                   // siehe Beschreibung
using std::atomic_fetch_or;                             // siehe Beschreibung
using std::atomic_fetch_or_explicit;                    // siehe Beschreibung
using std::atomic_fetch_xor;                            // siehe Beschreibung
using std::atomic_fetch_xor_explicit;                   // siehe Beschreibung
using std::atomic_fetch_and;                            // siehe Beschreibung
using std::atomic_fetch_and_explicit;                   // siehe Beschreibung
using std::atomic_flag_test_and_set;                    // siehe Beschreibung
using std::atomic_flag_test_and_set_explicit;           // siehe Beschreibung
using std::atomic_flag_clear;                           // siehe Beschreibung
using std::atomic_flag_clear_explicit;                  // siehe Beschreibung
#define ATOMIC_FLAG_INIT /* siehe Beschreibung */
using std::atomic_thread_fence;                         // siehe Beschreibung
using std::atomic_signal_fence;                         // siehe Beschreibung