std::barrier<CompletionFunction>::barrier
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    |   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 只能被销毁。