13 Asynchronous model [async]

13.27 Partial specialization of async_result for packaged_task [async.packaged.task.spec]

namespace std { namespace experimental { namespace net { inline namespace v1 { template<class Result, class... Args, class Signature> class async_result<packaged_task<Result(Args...)>, Signature> { public: using completion_handler_type = packaged_task<Result(Args...)>; using return_type = future<Result>; explicit async_result(completion_handler_type& h); async_result(const async_result&) = delete; async_result& operator=(const async_result&) = delete; return_type get(); private: return_type future_; // exposition only }; } // inline namespace v1 } // namespace net } // namespace experimental } // namespace std explicit async_result(completion_handler_type& h);

Effects: Initializes future_ with h.get_future().

return_type get();

Returns: std::move(future_).