If the associated state contains a deferred function from a call to
std::experimental::async
then invoke that function
and return the result. Otherwise, wait until the asynchronous result
associated with an instance of std::experimental::shared_future
is ready, and
then return the stored value or throw the stored exception.
void shared_future<void>::get() const; R& shared_future<R&>::get() const; R const& shared_future<R>::get() const;
this->valid()
would return true
.
Calls to get()
and wait()
from multiple threads on std::experimental::shared_future
instances
that share the same associated state are serialized. If the associated
state contains a deferred function then the first call to get()
or wait()
invokes the deferred function and stores the returned value or
thrown exception as the asynchronous result.
Block until the asynchronous result associated with *this
is ready. If the asynchronous result is a
stored exception then throw that exception. Otherwise return the
stored value.
If ResultType
is
void
then return normally.
If ResultType
is
R&
for some type R
then return the stored reference. Otherwise, return a const
reference to the stored value.
The stored exception, if any.
#include <experimental/future>