Namespaces
Variants

std::experimental::flex_barrier:: flex_barrier

From cppreference.net
explicit flex_barrier ( std:: ptrdiff_t num_threads ) ;
(1) (concurrency TS)
template < class F >
flex_barrier ( std:: ptrdiff_t num_threads, F completion ) ;
(2) (concurrency TS)
flex_barrier ( const flex_barrier & ) = delete ;
(3) (concurrency TS)
1) Имеет тот же эффект, что и flex_barrier ( num_threads, c ) , где c является Callable объектом, вызов которого возвращает -1 и не имеет побочных эффектов.
2) Создает flex_barrier для num_threads участвующих потоков, используя completion для фазы завершения. Набор участвующих потоков - это первые num_threads потоков, достигших точки синхронизации.
3) Конструктор копирования удален; flex_barrier не поддерживает копирование.

Параметры

num_threads - количество участвующих потоков для flex_barrier ; должно быть неотрицательным
completion - функциональный объект, управляющий фазой завершения; должен быть Callable без аргументов и с возвращаемым типом std::ptrdiff_t , и при вызове должен возвращать значение не меньше -1 и не должен генерировать исключения
Требования к типам
-
F должен удовлетворять требованиям CopyConstructible .

Примечания

Если num_threads равно нулю, набор участвующих потоков пуст, и flex_barrier может быть только уничтожен.