libstdc++
Collaboration diagram for Futures:

Classes

class  std::__basic_future< _Res >
 
class  std::future< _Res >
 
class  std::future< _Res & >
 
class  std::future< void >
 
class  std::future_error
 
struct  std::is_error_code_enum< future_errc >
 
class  std::packaged_task< _Res(_ArgTypes...)>
 
class  std::promise< _Res >
 
class  std::promise< _Res & >
 
class  std::promise< void >
 
class  std::shared_future< _Res >
 
class  std::shared_future< _Res & >
 
class  std::shared_future< void >
 

Enumerations

enum class  std::future_errc { future_already_retrieved , promise_already_satisfied , no_state , broken_promise }
 
enum class  std::future_status { ready , timeout , deferred }
 
enum class  std::launch { async , deferred }
 

Functions

 std::__basic_future< _Res >::__basic_future (const shared_future< _Res > &) noexcept
 
 std::__basic_future< _Res >::__basic_future (future< _Res > &&) noexcept
 
 std::__basic_future< _Res >::__basic_future (shared_future< _Res > &&) noexcept
 
template<typename _Fn , typename... _Args>
future< __async_result_of< _Fn, _Args... > > std::async (_Fn &&__fn, _Args &&... __args)
 
template<typename _Fn , typename... _Args>
future< __async_result_of< _Fn, _Args... > > std::async (launch __policy, _Fn &&__fn, _Args &&... __args)
 
const error_categorystd::future_category () noexcept
 
error_code std::make_error_code (future_errc __errc) noexcept
 
error_condition std::make_error_condition (future_errc __errc) noexcept
 
constexpr launch std::operator& (launch __x, launch __y) noexcept
 
launchstd::operator&= (launch &__x, launch __y) noexcept
 
constexpr launch std::operator^ (launch __x, launch __y) noexcept
 
launchstd::operator^= (launch &__x, launch __y) noexcept
 
constexpr launch std::operator| (launch __x, launch __y) noexcept
 
launchstd::operator|= (launch &__x, launch __y) noexcept
 
constexpr launch std::operator~ (launch __x) noexcept
 
template<typename _Fun , typename _Signature = __function_guide_t<_Fun, decltype(&_Fun::operator())>>
 std::packaged_task (_Fun) -> packaged_task< _Signature >
 
template<typename _Res , typename... _ArgTypes>
 std::packaged_task (_Res(*)(_ArgTypes...)) -> packaged_task< _Res(_ArgTypes...)>
 
shared_future< _Res > std::future< _Res >::share () noexcept
 
shared_future< _Res & > std::future< _Res & >::share () noexcept
 
shared_future< void > std::future< void >::share () noexcept
 
template<typename _Res , typename... _ArgTypes>
void std::swap (packaged_task< _Res(_ArgTypes...)> &__x, packaged_task< _Res(_ArgTypes...)> &__y) noexcept
 
template<typename _Res >
void std::swap (promise< _Res > &__x, promise< _Res > &__y) noexcept
 

Detailed Description

Futures and promises provide support for retrieving the result from an asynchronous function, e.g. one that is running in another thread. A std::future represents an asynchronous result that will become ready at some later time. A consumer can wait on a future until the result is ready to be accessed.

Since
C++11

Enumeration Type Documentation

◆ future_errc

enum class std::future_errc
strong

Error code for futures.

Definition at line 74 of file future.

◆ future_status

enum class std::future_status
strong

Status code for futures.

Definition at line 186 of file future.

◆ launch

enum class std::launch
strong

Launch code for futures.

Definition at line 149 of file future.

Function Documentation

◆ __basic_future() [1/3]

template<typename _Res >
std::__basic_future< _Res >::__basic_future ( const shared_future< _Res > &  __sf)
inlineexplicitprotectednoexcept

Definition at line 1046 of file future.

◆ __basic_future() [2/3]

template<typename _Res >
std::__basic_future< _Res >::__basic_future ( future< _Res > &&  __uf)
inlineexplicitprotectednoexcept

Definition at line 1058 of file future.

◆ __basic_future() [3/3]

template<typename _Res >
std::__basic_future< _Res >::__basic_future ( shared_future< _Res > &&  __sf)
inlineexplicitprotectednoexcept

Definition at line 1052 of file future.

◆ async() [1/2]

template<typename _Fn , typename... _Args>
future< __async_result_of< _Fn, _Args... > > std::async ( _Fn &&  __fn,
_Args &&...  __args 
)
inline

async, potential overload

Definition at line 1828 of file future.

References std::async().

◆ async() [2/2]

template<typename _Fn , typename... _Args>
future< __async_result_of< _Fn, _Args... > > std::async ( launch  __policy,
_Fn &&  __fn,
_Args &&...  __args 
)

async

Definition at line 1794 of file future.

Referenced by std::async().

◆ future_category()

const error_category & std::future_category ( )
noexcept

Points to a statically-allocated object derived from error_category.

Referenced by std::make_error_code(), and std::make_error_condition().

◆ make_error_code()

error_code std::make_error_code ( future_errc  __errc)
inlinenoexcept

Overload of make_error_code for future_errc.

Definition at line 94 of file future.

References std::future_category().

◆ make_error_condition()

error_condition std::make_error_condition ( future_errc  __errc)
inlinenoexcept

Overload of make_error_condition for future_errc.

Definition at line 100 of file future.

References std::future_category().

◆ operator&()

constexpr launch std::operator& ( launch  __x,
launch  __y 
)
constexprnoexcept

Definition at line 155 of file future.

◆ operator&=()

launch & std::operator&= ( launch __x,
launch  __y 
)
inlinenoexcept

Definition at line 176 of file future.

◆ operator^()

constexpr launch std::operator^ ( launch  __x,
launch  __y 
)
constexprnoexcept

Definition at line 167 of file future.

◆ operator^=()

launch & std::operator^= ( launch __x,
launch  __y 
)
inlinenoexcept

Definition at line 182 of file future.

◆ operator|()

constexpr launch std::operator| ( launch  __x,
launch  __y 
)
constexprnoexcept

Definition at line 161 of file future.

◆ operator|=()

launch & std::operator|= ( launch __x,
launch  __y 
)
inlinenoexcept

Definition at line 179 of file future.

◆ operator~()

constexpr launch std::operator~ ( launch  __x)
constexprnoexcept

Definition at line 173 of file future.

◆ share() [1/3]

template<typename _Res >
shared_future< _Res > std::future< _Res >::share
inlinenoexcept

Definition at line 1067 of file future.

◆ share() [2/3]

template<typename _Res >
shared_future< _Res & > std::future< _Res & >::share
inlinenoexcept

Definition at line 1072 of file future.

◆ share() [3/3]

shared_future< void > std::future< void >::share ( )
inlinenoexcept

Definition at line 1076 of file future.

◆ swap() [1/2]

template<typename _Res , typename... _ArgTypes>
void std::swap ( packaged_task< _Res(_ArgTypes...)> &  __x,
packaged_task< _Res(_ArgTypes...)> &  __y 
)
inlinenoexcept

swap

Definition at line 1662 of file future.

◆ swap() [2/2]

template<typename _Res >
void std::swap ( promise< _Res > &  __x,
promise< _Res > &  __y 
)
inlinenoexcept

Definition at line 1197 of file future.