### make_work_guard

Create an `executor_work_guard` object.

    template<
        typename Executor>
    executor_work_guard< Executor > make_work_guard(
        const Executor & ex,
        typename enable_if< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type *  = 0);
      » more...

    template<
        typename ExecutionContext>
    executor_work_guard< typename ExecutionContext::executor_type > make_work_guard(
        ExecutionContext & ctx,
        typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
      » more...

    template<
        typename T>
    executor_work_guard< typename associated_executor< T >::type > make_work_guard(
        const T & t,
        typename enable_if< !is_executor< T >::value &&!execution::is_executor< T >::value &&!is_convertible< T &, execution_context & >::value >::type *  = 0);
      » more...

    template<
        typename T,
        typename Executor>
    executor_work_guard< typename associated_executor< T, Executor >::type > make_work_guard(
        const T & t,
        const Executor & ex,
        typename enable_if< is_executor< Executor >::value||execution::is_executor< Executor >::value >::type *  = 0);
      » more...

    template<
        typename T,
        typename ExecutionContext>
    executor_work_guard< typename associated_executor< T, typename ExecutionContext::executor_type >::type > make_work_guard(
        const T & t,
        ExecutionContext & ctx,
        typename enable_if< !is_executor< T >::value &&!execution::is_executor< T >::value &&!is_convertible< T &, execution_context & >::value &&is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
      » more...

##### Requirements

Header: `asio/executor_work_guard.hpp`

Convenience header: `asio.hpp`