| Home | Libraries | People | FAQ | More

#### dispatch (1 of 3 overloads)

Submits a completion token or function object for execution.

    template<
        typename CompletionToken>
    DEDUCED dispatch(
        CompletionToken && token);

This function submits an object for execution using the object's associated executor. The function object may be called from the current thread prior to returning from `dispatch()`. Otherwise, it is queued for execution.

This function has the following effects:

- Constructs a function object handler of type `Handler`, initialized with `handler(forward<CompletionToken>(token))`.
- Constructs an object `result` of type `async_result<Handler>`, initializing the object as `result(handler)`.
- Obtains the handler's associated executor object `ex` by performing `get_associated_executor(handler)`.
- Obtains the handler's associated allocator object `alloc` by performing `get_associated_allocator(handler)`.
- Performs `ex.dispatch(std::move(handler), alloc)`.
- Returns `result.get()`.