std::barrier<CompletionFunction>::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
只能被销毁。