### experimental::coro

The main type of a resumable coroutine.

    template<
        typename Yield = void,
        typename Return = void,
        typename Executor = any_io_executor,
        typename Allocator = std::allocator<void>>
    struct coro

##### Member Functions

Name | Description
--- | ---
async_resume | Resume the coroutine.
coro [constructor] | The default constructor, gives an invalid coroutine. — Move constructor. —
get_allocator | Get the used allocator.
get_executor | Get the used executor.
is_open | Check whether the coroutine is open, i.e. can be resumed.
operator bool | Check whether the coroutine is open, i.e. can be resumed.
operator co_await | Operator used for coroutines without input value.
operator() | Operator used for coroutines with input value.
operator= | Move assignment.
~coro [destructor] | Destructor. Destroys the coroutine, if it holds a valid one.

##### Data Members

Name | Description
--- | ---
is_noexcept [static] | Whether or not the coroutine is noexcept.

Template parameter `Yield` specifies type or signature used by co_yield, `Return` specifies the type used for co_return, and `Executor` specifies the underlying executor type.

##### Requirements

Header: `asio/experimental/coro.hpp`

Convenience header: None