GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::experimental::when_all(3) C++ Standard Libary std::experimental::when_all(3)

std::experimental::when_all - std::experimental::when_all


Defined in header <experimental/future>
template < class InputIt >


auto when_all(InputIt first, InputIt last) (1) (concurrency TS)


-> future<std::vector<typename
std::iterator_traits<InputIt>::value_type>>;
template < class... Futures >


auto when_all(Futures&&... futures) (2) (concurrency TS)


-> future<std::tuple<std::decay_t<Futures>...>>;


Create a future object that becomes ready when all of the input futures and
shared_futures become ready. The behavior is undefined if any input future or
shared_future is invalid.


In particular, let Sequence be a std::vector<typename
std::iterator_traits<InputIt>::value_type> for (1) and
std::tuple<std::decay_t<Futures>...> for (2). This function template creates a
shared state containing Sequence and returns a future referring to the shared state.
Every input future is moved into the corresponding object in the Sequence in the
shared state, and every input shared_future is copied to the corresponding object in
the Sequence in the shared state. The order of the objects in the Sequence matches
the order of arguments.


1) This function does not participate in overload resolution unless InputIt's value
type (i.e., typename std::iterator_traits<InputIt>::value_type) is a
std::experimental::future or std::experimental::shared_future.
2) This function does not participate in overload resolution unless every argument
is either a (possibly cv-qualified) std::experimental::shared_future or a
cv-unqualified std::experimental::future. (Formally, for every type Fn in Futures,
either std::remove_reference_t<Fn> is std::experimental::future<Rn>, or
std::decay_t<Fn> is std::experimental::shared_future<Rn>.)


After this call, every input future is no longer valid; every input shared_future
remains valid.


A future referring to the shared state created by the call. The future is always
valid(), and it becomes ready when all of the input futures and shared_futures the
call are ready.


1) If the range is empty (i.e., first == last), the returned future contains an
empty vector and is ready immediately.
2) If there are no arguments supplied, a future<std::tuple<>> is returned and is
immediately ready.

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.