atomic-Struktur
Beschreibt ein Objekt, das auf einem gespeicherten Wert des Typs Ty atomische Vorgänge ausführt.
template <class Ty>
struct atomic;
Member
Öffentliche Konstruktoren
Name |
Beschreibung |
---|---|
Erstellt ein atomisches Objekt. |
Öffentliche Operatoren
Name |
Beschreibung |
---|---|
Liest und den gespeicherten Wert und gibt ihn zurück. (atomic::load-Methode) |
|
Verwendet zum Ersetzen des gespeicherten Werts einen angegebenen Wert. (atomic::store-Methode) |
|
Erhöht den gespeicherten Wert. Wird nur von integrale und Zeigerspezialisierungen verwendet. |
|
Fügt dem gespeicherten Wert einen angegebenen Wert hinzu. Wird nur von integrale und Zeigerspezialisierungen verwendet. |
|
Verringert den gespeicherten Wert. Wird nur von integrale und Zeigerspezialisierungen verwendet. |
|
Subtrahiert einen angegebenen Wert vom gespeicherten Wert. Wird nur von integrale und Zeigerspezialisierungen verwendet. |
|
Führt ein bitweises and auf einem angegebenen Wert und dem gespeicherten Wert aus. Wird nur bei Integralspezialisierungen verwendet. |
|
Führt ein bitweises or auf einem angegebenen Wert und dem gespeicherten Wert aus. Wird nur bei Integralspezialisierungen verwendet. |
|
Führt ein bitweises exclusive or auf einem angegebenen Wert und dem gespeicherten Wert aus. Wird nur bei Integralspezialisierungen verwendet. |
Öffentliche Methoden
Name |
Beschreibung |
---|---|
Führt einen atomic_compare_and_exchange-Vorgang auf this aus und gibt das Ergebnis zurück. |
|
Führt einen weak_atomic_compare_and_exchange-Vorgang auf this aus und gibt das Ergebnis zurück. |
|
Fügt dem gespeicherten Wert einen angegebenen Wert hinzu. |
|
Führt ein bitweises and auf einem angegebenen Wert und dem gespeicherten Wert aus. |
|
Führt ein bitweises or auf einem angegebenen Wert und dem gespeicherten Wert aus. |
|
Subtrahiert einen angegebenen Wert vom gespeicherten Wert. |
|
Führt ein bitweises exclusive or auf einem angegebenen Wert und dem gespeicherten Wert aus. |
|
Gibt an, ob die atomischen Vorgänge auf thissperrfrei sind. Ein atomischer Typ ist sperrfrei, wenn für keine der atomischen Vorgänge auf diesem Typ Sperren verwendet werden. |
|
Liest und den gespeicherten Wert und gibt ihn zurück. |
|
Verwendet zum Ersetzen des gespeicherten Werts einen angegebenen Wert. |
Hinweise
Der Ty-Typ muss belanglos kopierbar sein. Das heißt, das Kopieren der Bytes mithilfe von memcpy muss ein gültiges Ty-Objekt erstellen, das im Vergleich dem ursprünglichen Objekt entspricht. Bei den Memberfunktionen compare_exchange_weak und compare_exchange_strong wird memcmp verwenden, um zu bestimmen, ob zwei Ty-Werte gleich sind. Bei diesen Funktionen wird kein Ty-definiertes operator== verwendet. Für die Memberfunktionen von atomic wird memcpy zum Kopieren der Werte des Typs Ty verwendet.
Eine teilweise Spezialisierung, atomic<Ty *>, ist für alle Zeigertypen vorhanden. Mit der Spezialisierung wird das Hinzufügen eines Offsets zum verwalteten Zeigerwert oder die Wegnahme eines Offsets von dort ermöglicht. Mit den arithmetischen Operationen wird ein Argument des Typs ptrdiff_t akzeptiert und entsprechend der Größe von Ty angepasst, damit es mit normaler Adressenarithmetik konsistent ist.
Eine Spezialisierung ist für jeden Integraltypen außer bool vorhanden. Mit jeder Spezialisierung wird ein umfangreicher Satz an Methoden für atomisch arithmetische und logische Vorgänge bereitgestellt.
atomic<char> |
atomic<signed char> |
atomic<unsigned char> |
atomic<char16_t> |
atomic<char32_t> |
atomic<wchar_t> |
atomic<short> |
atomic<unsigned short> |
atomic<int> |
atomic<unsigned int> |
atomic<long> |
atomic<unsigned long> |
atomic<long long> |
atomic<unsigned long long> |
Integralspezialisierungen werden von den entsprechenden **atomic_**integral-Typen abgeleitet. So wird atomic<unsigned int> z. B. von atomic_uint abgeleitet.
Anforderungen
Header: atomisch
Namespace: std