| Home | Libraries | People | FAQ | More

#### post (1 of 3 overloads)

Submits a completion token or function object for execution.

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

This function submits an object for execution using the object's associated executor. The function object is queued for execution, and is never called from the current thread prior to returning from `post()`.

The use of `post()`, rather than `defer` , indicates the caller's preference that the function object be eagerly 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.post(std::move(handler), alloc)`.
- Returns `result.get()`.