constexpr explicit barrier( std::ptrdiff_t expected, CompletionFunction f = CompletionFunction());
barrier( const barrier & ) = delete;
expected, initializes the completion function object with
std::move(f), and then starts the first phase. The behavior is undefined if
expectedis negative or greater than
barrieris neither copyable nor movable.
|expected||-||initial value of the expected count|
|f||-||completion function object to be called on phase completion step|
CompletionFunction's move constructor.
expected is permitted to be zero. However, calling any non-static member function other than the destructor on such
barrier results in undefined behavior. In other words, such
barrier can only be destroyed.
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.