std::experimental:: when_all
|
Definiert in Header
<experimental/future>
|
||
|
template
<
class
InputIt
>
auto
when_all
(
InputIt first, InputIt last
)
|
(1) | (concurrency TS) |
|
template
<
class
...
Futures
>
auto
when_all
(
Futures
&&
...
futures
)
|
(2) | (concurrency TS) |
Erstellen Sie ein
future
-Objekt, das bereit wird, wenn alle Eingabe-
future
s und
shared_future
s bereit werden. Das Verhalten ist undefiniert, falls eine Eingabe-
future
oder
shared_future
ungültig ist.
Insbesondere sei
Sequence
ein
std::
vector
<
typename
std::
iterator_traits
<
InputIt
>
::
value_type
>
für
(1)
und
std::
tuple
<
std::
decay_t
<
Futures
>
...
>
für
(2)
. Diese Funktionsvorlage erzeugt einen gemeinsamen Zustand, der
Sequence
enthält, und gibt ein Future zurück, das auf diesen gemeinsamen Zustand verweist. Jedes Eingabe-
future
wird in das entsprechende Objekt in der
Sequence
im gemeinsamen Zustand verschoben, und jedes Eingabe-
shared_future
wird in das entsprechende Objekt in der
Sequence
im gemeinsamen Zustand kopiert. Die Reihenfolge der Objekte in der
Sequence
entspricht der Reihenfolge der Argumente.
InputIt
's Werttyp (d.h.
typename
std::
iterator_traits
<
InputIt
>
::
value_type
) ist ein
std::experimental::future
oder
std::experimental::shared_future
.
Fn
in
Futures
ist entweder
std::
remove_reference_t
<
Fn
>
ein
std::
experimental
::
future
<
Rn
>
, oder
std::
decay_t
<
Fn
>
ist ein
std::
experimental
::
shared_future
<
Rn
>
.)
Nach diesem Aufruf ist jedes Eingabe-
future
nicht mehr gültig; jedes Eingabe-
shared_future
bleibt gültig.
Rückgabewert
Ein
future
, der auf den durch den Aufruf erstellten gemeinsamen Zustand verweist. Der future ist immer
valid
(
)
und wird bereit, wenn alle Eingabe-
future
s und
shared_future
s des Aufrufs bereit sind.
future
einen leeren Vektor und ist sofort bereit.
future<std::tuple<>>
zurückgegeben und ist sofort bereit.