Boost C++ Libraries

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

defer (1 of 3 overloads)
PrevUpHomeNext

Submits a completion token or function object for execution.

template<
    typename CompletionToken>
DEDUCED defer(
    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 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:

  • 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.defer(std::move(handler), alloc).
  • Returns result.get().

PrevUpHomeNext