std::atomic_flag_clear, std::atomic_flag_clear_explicit
來自 cppreference.com
定義於標頭檔案 <atomic> |
||
void atomic_flag_clear( volatile std::atomic_flag* obj ) noexcept; |
(1) | (C++11 起) |
void atomic_flag_clear( std::atomic_flag* obj ) noexcept; |
(2) | (C++11 起) |
void atomic_flag_clear_explicit( volatile std::atomic_flag* obj, std::memory_order order ) noexcept; |
(3) | (C++11 起) |
void atomic_flag_clear_explicit( std::atomic_flag* obj, std::memory_order order ) noexcept; |
(4) | (C++11 起) |
原子地將 obj 所指向的 std::atomic_flag 的狀態更改為清除(false)。
1,2) 記憶體同步順序為 std::memory_order_seq_cst。
3,4) 記憶體同步順序為 order。
如果 order 是 std::memory_order_consume、std::memory_order_acquire 和 std::memory_order_acq_rel 之一,則行為未定義。
目錄 |
[編輯] 引數
obj | - | 指向要訪問的 std::atomic_flag 的指標 |
順序 | - | 記憶體同步順序 |
[編輯] 注意
std::atomic_flag_clear
和 std::atomic_flag_clear_explicit
可以分別實現為 obj->clear() 和 obj->clear(order)。
[編輯] 缺陷報告
下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。
缺陷報告 | 應用於 | 釋出時的行為 | 正確的行為 |
---|---|---|---|
LWG 2138 | C++11 | order 可以是 std::memory_order_consume | 在這種情況下行為未定義 |
[編輯] 參閱
(C++11) |
無鎖布林原子型別 (類) |
原子地將標誌設定為 true 並返回其先前的值 (函式) | |
(C++11) |
定義給定原子操作的記憶體排序約束 (列舉) |
C 文件 用於 atomic_flag_clear, atomic_flag_clear_explicit
|