D.4. Заголовок <future>

В заголовке <future> объявлены средства для обработки результатов асинхронных операций, которые могли быть выполнены в другом потоке.

Содержимое заголовка

namespace std {

enum class future_status {

 ready, timeout, deferred

};

enum class future_errc {

 broken_promise,

 future_already_retrieved,

 promise_already_satisfied,

 no_state

};

class future_error;

const error_category& future_category();

error_code make_error_code(future_errc e);

error_condition make_error_condition(future_errc e);

template<typename ResultType>

class future;

template<typename ResultType>

class shared_future;

template<typename ResultType>

class promise;

template<typename FunctionSignature>

class packaged_task; // определение не предоставляется

template<typename ResultType, typename ... Args>

class packaged_task<ResultType (Args...)>;

enum class launch {

 async, deferred

};

template<typename FunctionType, typename ... Args>

future<result_of<FunctionType(Args...)>::type>

async(FunctionType&& func, Args&& ... args);

template<typename FunctionType, typename ... Args>

future<result_of<FunctionType(Args...)>::type>

async(std::launch policy, FunctionType&& func, Args&& ... args);

}