| Home | Libraries | People | FAQ | More

### basic_yield_context

Context object the represents the currently executing coroutine.

    template<
        typename Handler>
    class basic_yield_context

##### Types

Name | Description
--- | ---
callee_type | The coroutine callee type, used by the implementation.
caller_type | The coroutine caller type, used by the implementation.

##### Member Functions

Name | Description
--- | ---
basic_yield_context | Construct a yield context to represent the specified coroutine.
operator[] | 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.

##### Requirements

Header: `boost/asio/spawn.hpp`

Convenience header: None