- atomic[meta header]
- std[meta namespace]
- atomic_flag[meta class]
- function[meta id-type]
- cpp11[meta cpp]
void
clear(memory_order order = memory_order_seq_cst
) volatile noexcept; // (1) C++11
void
clear(memory_order order = memory_order_seq_cst
) noexcept; // (2) C++11
constexpr void
clear(memory_order order = memory_order_seq_cst
) noexcept; // (2) C++26
- memory_order[link /reference/atomic/memory_order.md]
- memory_order_seq_cst[link /reference/atomic/memory_order.md]
フラグをクリアする
order
が以下のメモリオーダーではないこと:
order
で指定されたメモリオーダーにしたがって、アトミックにfalse
値を書き込む。
なし
投げない
#include <iostream>
#include <atomic>
int main()
{
std::atomic_flag x = ATOMIC_FLAG_INIT;
std::cout << std::boolalpha;
{
// 値をtrueに設定する(変更前の値はfalse)
bool result = x.test_and_set();
std::cout << result << std::endl;
}
// 値をfalseにする
x.clear();
{
// 値をtrueに設定する(変更前の値はfalse)
bool result = x.test_and_set();
std::cout << result << std::endl;
}
}
- clear[color ff0000]
- std::atomic_flag[link /reference/atomic/atomic_flag.md]
- ATOMIC_FLAG_INIT[link /reference/atomic/atomic_flag_init.md]
- x.test_and_set()[link test_and_set.md]
false
false
- C++11
- Clang: ??
- GCC: 4.7.0 [mark verified]
- ICC: ??
- Visual C++: 2012 [mark verified], 2013 [mark verified]