std::atomic_flag_clear, std::atomic_flag_clear_explicit
Von cppreference.com
| Definiert in Header <atomic> |
||
| void atomic_flag_clear( volatile std::atomic_flag* obj ) noexcept; |
(1) | (seit C++11) |
| void atomic_flag_clear( std::atomic_flag* obj ) noexcept; |
(2) | (seit C++11) |
| void atomic_flag_clear_explicit( volatile std::atomic_flag* obj, std::memory_order order ) noexcept; |
(3) | (seit C++11) |
| void atomic_flag_clear_explicit( std::atomic_flag* obj, std::memory_order order ) noexcept; |
(4) | (seit C++11) |
Setzt den Zustand des von obj zeigenden std::atomic_flag atomar auf "gelöscht" (false).
1,2) Die Speicher-Synchronisationsreihenfolge ist std::memory_order_seq_cst.
3,4) Die Speicher-Synchronisationsreihenfolge ist 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 |
[edit] Parameter
| obj | - | Zeiger auf std::atomic_flag, auf den zugegriffen werden soll |
| Reihenfolge | - | die Speicher-Synchronisationsreihenfolge |
[edit] Anmerkungen
std::atomic_flag_clear und std::atomic_flag_clear_explicit können als obj->clear() bzw. obj->clear(order) implementiert werden.
[edit] 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 |
|---|---|---|---|
| LWG 2138 | C++11 | order könnte std::memory_order_consume sein | das Verhalten ist in diesem Fall undefiniert |
[edit] Siehe auch
| (C++11) |
der sperrfreie boolesche atomare Typ (Klasse) |
| setzt das Flag atomar auf true und gibt seinen vorherigen Wert zurück (Funktion) | |
| (C++11) |
definiert Speicherordnungseinschränkungen für die gegebene atomare Operation (Enum) |
| C-Dokumentation für atomic_flag_clear, atomic_flag_clear_explicit
| |