Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

defer (1 of 3 overloads)

Submits a completion token or function object for execution.

    typename NullaryToken>
DEDUCED defer(
    NullaryToken && 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 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.



The completion token that will be used to produce a completion handler. The function signature of the completion handler must be:

void handler();
Return Value

This function returns async_initiate<NullaryToken, void()>(Init{}, token), where Init is a function object type defined as:

class Init
  template <typename CompletionHandler>
    void operator()(CompletionHandler&& completion_handler) const;

The function call operator of Init:

Completion Signature