explicit flex_barrier( std::ptrdiff_t num_threads );
template < class F >
flex_barrier( std::ptrdiff_t num_threads, F completion );
flex_barrier( const flex_barrier & ) = delete;
1) Has the same effect as flex_barrier(num_threads, c), where
cis a Callable object whose invocation returns -1 and has no side effects.
2) Constructs a
num_threadsparticipating threads, using
completionfor the completion phase. The set of participating threads is the first
num_threadsthreads to arrive at the synchronization point.
3) Copy constructor is deleted;
flex_barrieris not copyable.
|num_threads||-|| the number of participating threads for the |
|completion||-||A function object controlling the completion phase; must be Callable with no arguments and return type std::ptrdiff_t, and when invoked, must return a value no less than -1 and must not throw an exception.|
num_threads is zero, the set of participating threads is empty, and flex_barrier can only be destroyed.