std::experimental::flex_barrier:: flex_barrier
From cppreference.net
<
cpp
|
experimental
|
flex barrier
|
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)
Hat denselben Effekt wie
flex_barrier
(
num_threads, c
)
, wobei
c
ein
Callable
-Objekt ist, dessen Aufruf -1 zurückgibt und keine Nebeneffekte hat.
2)
Konstruiert eine
flex_barrier
für
num_threads
teilnehmende Threads, wobei
completion
für die Abschlussphase verwendet wird. Die Gruppe der teilnehmenden Threads besteht aus den ersten
num_threads
Threads, die den Synchronisationspunkt erreichen.
3)
Copy-Konstruktor ist gelöscht;
flex_barrier
ist nicht kopierbar.
Parameter
| num_threads | - |
die Anzahl der teilnehmenden Threads für die
flex_barrier
; muss nicht-negativ sein
|
| completion | - | ein Funktionsobjekt, das die Abschlussphase steuert; muss Callable ohne Argumente mit Rückgabetyp std::ptrdiff_t sein und bei Aufruf einen Wert nicht kleiner als -1 zurückgeben und keine Ausnahme werfen |
| Typanforderungen | ||
-
F
muss die Anforderungen von
CopyConstructible
erfüllen.
|
||
Hinweise
Wenn num_threads null ist, ist die Menge der teilnehmenden Threads leer, und die flex_barrier kann nur zerstört werden.