Asio

ASIO/Networking TS : Boost < 1.70

Thanks to Christos Stratopoulos for this Outcome recipe. Compatibility note This recipe targets Boost versions before 1.70, where coroutine support is based around the asio::experimental::this_coro::token completion token. For integration with Boost versions 1.70 and onward, see this recipe. Use case Boost.ASIO and standalone ASIO provide the async_result customisation point for adapting arbitrary third party libraries, such as Outcome, into ASIO. Historically in ASIO you need to pass completion handler instances to the ASIO asynchronous i/o initiation functions. »

ASIO/Networking TS: Boost >= 1.70

Thanks to Christos Stratopoulos for this Outcome recipe. Compatibility note This recipe targets Boost versions including and after 1.70, where coroutine support is based around the asio::use_awaitable completion token. For integration with Boost versions before 1.70, see this recipe. Use case Boost.ASIO and standalone ASIO provide the async_result customisation point for adapting arbitrary third party libraries, such as Outcome, into ASIO. Historically in ASIO you need to pass completion handler instances to the ASIO asynchronous i/o initiation functions. »