std::barrier<CompletionFunction>::barrier

< cpp‎ | thread‎ | barrier
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 只能被销毁。