Namespaces
Variants

std::barrier<CompletionFunction>:: barrier

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
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
constexpr explicit barrier ( std:: ptrdiff_t expected,
CompletionFunction f = CompletionFunction ( ) ) ;
(1) (C++20以降)
barrier ( const barrier & ) = delete ;
(2) (C++20以降)
1) 各フェーズの初期期待カウントと最初のフェーズの現在の期待カウントの両方を expected に設定し、完了関数オブジェクトを std :: move ( f ) で初期化し、その後最初のフェーズを開始します。 expected が負の値であるか、 max() より大きい場合の動作は未定義です。
2) コピーコンストラクタは削除されています。 barrier はコピーも移動もできません。

パラメータ

expected - 期待値カウントの初期値
f - フェーズ完了ステップで呼び出される完了関数オブジェクト

例外

1) CompletionFunction のムーブコンストラクタによってスローされるあらゆる例外。

注記

expected はゼロであることが許可されています。ただし、そのような barrier に対してデストラクタ以外の非静的メンバー関数を呼び出すと未定義動作を引き起こします。言い換えれば、そのような barrier は破棄することのみが可能です。