The class template
shared_future defines a type for asynchronous return objects
which may share their shared state with other asynchronous return
objects
. A default-constructed
shared_future
object has no shared state
. A
shared_future object with
shared state can
be created
by conversion from a
future object and shares its shared state with the
original
asynchronous provider of the shared state
. The result (value or exception) of a
shared_future object
can be set by
calling a respective function on an
object that shares the same shared state
.