std::atomic_ref<T>:: is_lock_free
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
atomic_ref::is_lock_free
|
||||
|
(C++26)
|
||||
|
Operations for arithmetic types
(except
bool
and pointer-to-object)
|
||||
|
Operations for integral types
(except
bool
and pointer-to-object)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
|
Operations for integral types
(except
bool
)
|
||||
| Constants | ||||
|
bool
is_lock_free
(
)
const
noexcept
;
|
(seit C++20) | |
Prüft, ob die atomaren Operationen auf diesem Objekt sperrfrei sind.
Inhaltsverzeichnis |
Parameter
(keine)
Rückgabewert
true wenn die atomaren Operationen auf diesem Objekt lock-free sind, false andernfalls.
Hinweise
Alle atomaren Typen außer std::atomic_flag können mittels Mutexen oder anderen Sperroperationen implementiert werden, anstatt die lock-freien atomaren CPU-Befehle zu verwenden. Atomaren Typen ist es ebenfalls erlaubt, manchmal lock-free zu sein, z.B. wenn auf einer gegebenen Architektur nur ausgerichtete Speicherzugriffe natürlich atomar sind, müssen falsch ausgerichtete Objekte desselben Typs Sperren verwenden.
Der C++-Standard empfiehlt (aber verlangt nicht), dass lockfreie atomare Operationen auch adressfrei sind, das heißt, geeignet für die Kommunikation zwischen Prozessen, die Shared Memory verwenden.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
[static]
|
zeigt an, dass der Typ immer sperrfrei ist
(öffentliche statische Member-Konstante) |