如何在此示例代码片段中替换不推荐使用的handler_type_t或boost :: asio :: handler_type?

问题描述 投票:1回答:1

我发现了这个有趣的链接boost::asio::spawn yield as callback

由于这可能是我所需要的,所以我想尝试以下部分:

template <class CompletionToken>
auto async_foo(uint64_t item_id, CompletionToken&& token)
{

    typename boost::asio::handler_type< CompletionToken, void(error_code, size_t) >::type handler(std::forward<CompletionToken>(token));
    //handler_type_t<CompletionToken, void(error_code, size_t)>                        handler(std::forward<CompletionToken>(token));

    async_result<decltype(handler)> result(handler);

    //async_request_data(item_id, handler);

    return result.get();
}  

但是很明显,在新的增强版本中,handler_type_tboost::asio::handler_type都不存在。

如何修改示例?

编辑:

他是对的吗?代替

boost::asio::handler_type< CompletionToken, void(error_code, size_t) >::type

我用过

typename boost::asio::async_result< CompletionToken, void(error_code, size_t) >::completion_handler_type
c++ asynchronous boost boost-asio yield
1个回答
0
投票
几乎是正确的。从docsboost.asio
© www.soinside.com 2019 - 2024. All rights reserved.