![]() |
Submits a completion token or function object for execution.
template< typename NullaryToken> auto dispatch( NullaryToken && 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.
The completion token that will be used to produce a completion handler. The function signature of the completion handler must be:
void handler();
This function returns async_initiate<NullaryToken, void()>(Init{}, token),
where Init is a function
object type defined as:
class Init { public: template <typename CompletionHandler> void operator()(CompletionHandler&& completion_handler) const; };
The function call operator of Init:
Obtains the handler's associated executor object ex
of type Ex by performing
auto ex = get_associated_executor(handler);
Obtains the handler's associated allocator object alloc
by performing
auto alloc = get_associated_allocator(handler);
If execution::is_executor<Ex>::value is true, performs
prefer(ex, execution::allocator(alloc)).execute( std::forward<CompletionHandler>(completion_handler));
If execution::is_executor<Ex>::value is false, performs
ex.dispatch( std::forward<CompletionHandler>(completion_handler), alloc);
void()