constexpr explicit barrier( std::ptrdiff_t expected,
CompletionFunction f = CompletionFunction());
| (1) | (since C++20) |
barrier( const barrier & ) = delete; | (2) | (since C++20) |
expected, initializes the completion function object with std::move(f), and then starts the first phase. The behavior is undefined if expected is negative or greater than max().barrier is 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.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/thread/barrier/barrier