### co_spawn

Spawn a new coroutined-based thread of execution.

    template<
        typename Executor,
        typename T,
        typename AwaitableExecutor,
        typename CompletionToken = DEFAULT>
    DEDUCED co_spawn(
        const Executor & ex,
        awaitable< T, AwaitableExecutor > a,
        CompletionToken && token = DEFAULT,
        constraint_t<(is_executor< Executor >::value||execution::is_executor< Executor >::value) &&is_convertible< Executor, AwaitableExecutor >::value >  = 0);
      » more...

    template<
        typename Executor,
        typename AwaitableExecutor,
        typename CompletionToken = DEFAULT>
    DEDUCED co_spawn(
        const Executor & ex,
        awaitable< void, AwaitableExecutor > a,
        CompletionToken && token = DEFAULT,
        constraint_t<(is_executor< Executor >::value||execution::is_executor< Executor >::value) &&is_convertible< Executor, AwaitableExecutor >::value >  = 0);
      » more...

    template<
        typename ExecutionContext,
        typename T,
        typename AwaitableExecutor,
        typename CompletionToken = DEFAULT>
    DEDUCED co_spawn(
        ExecutionContext & ctx,
        awaitable< T, AwaitableExecutor > a,
        CompletionToken && token = DEFAULT,
        constraint_t< is_convertible< ExecutionContext &, execution_context & >::value &&is_convertible< typename ExecutionContext::executor_type, AwaitableExecutor >::value >  = 0);
      » more...

    template<
        typename ExecutionContext,
        typename AwaitableExecutor,
        typename CompletionToken = DEFAULT>
    DEDUCED co_spawn(
        ExecutionContext & ctx,
        awaitable< void, AwaitableExecutor > a,
        CompletionToken && token = DEFAULT,
        constraint_t< is_convertible< ExecutionContext &, execution_context & >::value &&is_convertible< typename ExecutionContext::executor_type, AwaitableExecutor >::value >  = 0);
      » more...

    template<
        typename Executor,
        typename F,
        typename CompletionToken = DEFAULT>
    DEDUCED co_spawn(
        const Executor & ex,
        F && f,
        CompletionToken && token = DEFAULT,
        constraint_t< is_executor< Executor >::value||execution::is_executor< Executor >::value >  = 0);
      » more...

    template<
        typename ExecutionContext,
        typename F,
        typename CompletionToken = DEFAULT>
    DEDUCED co_spawn(
        ExecutionContext & ctx,
        F && f,
        CompletionToken && token = DEFAULT,
        constraint_t< is_convertible< ExecutionContext &, execution_context & >::value >  = 0);
      » more...

##### Requirements

Header: `asio/impl/co_spawn.hpp`

Convenience header: `asio.hpp`