std::barrier<CompletionFunction>:: barrier
From cppreference.net
C++
Concurrency support library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::barrier
| Member functions | ||||
|
barrier::barrier
|
||||
| Constants | ||||
|
constexpr
explicit
barrier
(
std::
ptrdiff_t
expected,
CompletionFunction f = CompletionFunction ( ) ) ; |
(1) | (seit C++20) |
|
barrier
(
const
barrier
&
)
=
delete
;
|
(2) | (seit C++20) |
1)
Setzt sowohl den anfänglich erwarteten Zähler für jede Phase als auch den aktuell erwarteten Zähler für die erste Phase auf
expected
, initialisiert das Abschlussfunktionsobjekt mit
std
::
move
(
f
)
und startet dann die erste Phase. Das Verhalten ist undefiniert, wenn
expected
negativ ist oder größer als
max()
.
2)
Der Kopierkonstruktor ist gelöscht.
barrier
ist weder kopierbar noch verschiebbar.
Parameter
| expected | - | Anfangswert des erwarteten Zählers |
| f | - | Funktionsobjekt für den Abschluss, das beim Phasenabschlussschritt aufgerufen wird |
Exceptions
1)
Jede Ausnahme, die vom Move-Konstruktor von
CompletionFunction
geworfen wird.
Hinweise
expected
darf null sein. Allerdings führt der Aufruf einer beliebigen nicht-statischen Memberfunktion außer dem Destruktor auf einem solchen
barrier
zu undefiniertem Verhalten. Mit anderen Worten, ein solcher
barrier
kann nur zerstört werden.