std::experimental:: when_any
|
Definiert in Header
<experimental/future>
|
||
|
template
<
class
Sequence
>
struct
when_any_result
{
|
(Concurrency TS) | |
|
template
<
class
InputIt
>
auto
when_any
(
InputIt first, InputIt last
)
|
(1) | (Concurrency TS) |
|
template
<
class
...
Futures
>
auto
when_any
(
Futures
&&
...
futures
)
|
(2) | (Concurrency TS) |
Erstellen Sie ein
future
-Objekt, das bereit wird, wenn mindestens eines der Eingabe-
future
s und
shared_future
s bereit wird. 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
when_any_result<Sequence>
enthält, und gibt ein Future zurück, das auf diesen gemeinsamen Zustand verweist. Jedes Eingabe-
future
wird in das entsprechende Objekt im
futures
-Member des
when_any_result<Sequence>
im gemeinsamen Zustand verschoben, und jedes Eingabe-
shared_future
wird in das entsprechende Objekt im
futures
-Member des
when_any_result<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 mindestens einer der Eingabe-
future
s und
shared_future
s des Aufrufs bereit ist. Das
index
-Mitglied der
when_any_result
enthält die Position des bereiten
future
oder
shared_future
im
futures
-Mitglied.
future
sofort bereit; das
futures
-Feld des
when_any_result
ist ein leerer Vektor, und das
index
-Feld ist
size_t
(
-
1
)
.
future
sofort bereit; das
futures
-Feld des
when_any_result
ist ein leeres Tupel, und das
index
-Feld ist
size_t
(
-
1
)
.