...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::asio::async_result<boost::process::v2::code_as_error_t< CompletionToken >, void(boost::process::v2::error_code, boost::process::v2::native_exit_code_type)>
// In header: <boost/process/v2/exit_code.hpp> template<typename CompletionToken> struct async_result<boost::process::v2::code_as_error_t< CompletionToken >, void(boost::process::v2::error_code, boost::process::v2::native_exit_code_type)> { // types typedef void(boost::process::v2::error_code) signature; typedef typename async_result< CompletionToken, void(boost::process::v2::error_code)>::return_type return_type; // member classes/structs/unions template<typename Initiation> struct init_wrapper { // construct/copy/destruct init_wrapper(Initiation); // public member functions template<typename Handler, typename... Args> void operator()(Handler &&, const boost::process::v2::error_category &, Args &&...); // public data members Initiation initiation_; }; // public static functions template<typename Initiation, typename RawCompletionToken, typename... Args> static static BOOST_PROCESS_V2_INITFN_DEDUCED_RESULT_TYPE(CompletionToken, signature, (async_initiate< CompletionToken, signature >(declval< init_wrapper< typename decay< Initiation >::type > >(), declval< CompletionToken & >(), declval< BOOST_ASIO_MOVE_ARG(Args)>()...))); // public data members RawCompletionToken && token; RawCompletionToken Args && args; };
async_result
public static functionstemplate<typename Initiation, typename RawCompletionToken, typename... Args> static static BOOST_PROCESS_V2_INITFN_DEDUCED_RESULT_TYPE(CompletionToken, signature, (async_initiate< CompletionToken, signature >(declval< init_wrapper< typename decay< Initiation >::type > >(), declval< CompletionToken & >(), declval< BOOST_ASIO_MOVE_ARG(Args)>()...)));