...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Context object that represents the currently executing coroutine.
typedef basic_yield_context< unspecified > yield_context;
Name |
Description |
---|---|
The coroutine callee type, used by the implementation. |
|
The coroutine caller type, used by the implementation. |
Name |
Description |
---|---|
Construct a yield context to represent the specified coroutine. |
|
Return a yield context that sets the specified error_code. |
The basic_yield_context
class is used
to represent the currently executing stackful coroutine. A basic_yield_context
may be passed
as a handler to an asynchronous operation. For example:
template <typename Handler> void my_coroutine(basic_yield_context<Handler> yield) { ... std::size_t n = my_socket.async_read_some(buffer, yield); ... }
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.
Header: boost/asio/spawn.hpp
Convenience header: boost/asio.hpp