|  | Home | Libraries | People | FAQ | More | 
Submits a completion token or function object for execution.
template<
    typename Executor,
    typename CompletionToken = DEFAULT>
DEDUCED defer(
    const Executor & ex,
    CompletionToken && token = DEFAULT,
    typename constraint< execution::is_executor< Executor >::value||is_executor< Executor >::value >::type  = 0);
          This function submits an object for execution using the specified executor.
          The function object is queued for execution, and is never called from the
          current thread prior to returning from defer().
        
          The use of defer(), rather than post
          , indicates the caller's preference that the executor defer the queueing
          of the function object. This may allow the executor to optimise queueing
          for cases when the function object represents a continuation of the current
          call context.
        
This function has the following effects:
Handler,
              initialized with handler(forward<CompletionToken>(token)).
            result of type async_result<Handler>,
              initializing the object as result(handler).
            ex1 by
              performing get_associated_executor(handler).
            w by performing make_work(ex1).
            alloc
              by performing get_associated_allocator(handler).
            f with a function call operator
              that performs ex1.dispatch(std::move(handler), alloc)
              followed by w.reset().
            Executor(ex).defer(std::move(f), alloc).
            result.get().