...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Specify
use_coro_t
as the default
completion token type.
typedef use_coro_t default_completion_token_type;
Name |
Description |
---|---|
The allocator type. The allocator is used when constructing the std::promise object for a given asynchronous operation. |
|
Type alias to adapt an I/O object to use use_coro_t as its default completion token type. |
|
Adapts an executor to add the use_coro_t completion token as the default. |
Name |
Description |
---|---|
as_default_on [static] |
Function helper to adapt an I/O object to use use_coro_t as its default completion token type. |
Obtain allocator. |
|
Specify an alternate allocator. |
|
use_coro_t [constructor] |
Default constructor. |
The use_coro_t
class, with
its value use_coro
, is
used to represent an operation that can be awaited by the current resumable
coroutine. This completion token may be passed as a handler to an asynchronous
operation. For example:
coro<void> my_coroutine(tcp::socket my_socket) { std::size_t n = co_await my_socket.async_read_some(buffer, use_coro); ... }
When used with co_await, the initiating function (async_read_some
in the above example) suspends the current coroutine. The coroutine is
resumed when the asynchronous operation completes, and the result of the
operation is returned.
Note that this token is not the most efficient (use the default completion
token boost::asio::deferred
for that) but does provide type
erasure, as it will always return a coro
.
Header: boost/asio/experimental/use_coro.hpp
Convenience header: None