Namespaces
Variants

std:: once_flag

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
(C++11)
(C++11)
once_flag
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
定義先ヘッダ <mutex>
class once_flag ;
(C++11以降)

std::once_flag クラスは、 std::call_once のためのヘルパー構造体です。

std::once_flag 型のオブジェクトを std::call_once の複数の呼び出しに渡すことで、それらの呼び出しが相互に調整され、実際に完了まで実行される呼び出しは1つだけとなるようにします。

std::once_flag はコピーもムーブもできない。

目次

メンバー関数

std::once_flag:: once_flag

constexpr once_flag ( ) noexcept ;

once_flag オブジェクトを構築します。内部状態は、まだ関数が呼び出されていないことを示すように設定されます。

パラメータ

(なし)


関連項目

(C++11)
複数のスレッドから呼び出された場合でも、関数を一度だけ呼び出す
(関数テンプレート)
Cドキュメント for once_flag
翻訳のポイント: - HTMLタグ、属性、C++固有の用語(`call_once`, `once_flag`, `C++11`)は翻訳せず保持 - ` `, `
`, ``タグ内のテキストは存在しないため該当なし
- 説明文「invokes a function only once even if called from multiple threads」を「複数のスレッドから呼び出された場合でも、関数を一度だけ呼び出す」と正確に翻訳
- 「function template」を「関数テンプレート」と翻訳
- 「C documentation」を「Cドキュメント」と翻訳(C言語のドキュメントであることを明確に)