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.

make_work_guard (5 of 5 overloads)

Create an executor_work_guard object.

    typename T,
    typename ExecutionContext>
executor_work_guard< typename associated_executor< T, typename ExecutionContext::executor_type >::type > make_work_guard(
    const T & t,
    ExecutionContext & ctx,
    typename constraint< !is_executor< T >::value >::type  = 0,
    typename constraint< !execution::is_executor< T >::value >::type  = 0,
    typename constraint< !is_convertible< T &, execution_context & >::value >::type  = 0,
    typename constraint< is_convertible< ExecutionContext &, execution_context & >::value >::type  = 0);


An arbitrary object, such as a completion handler, for which the associated executor will be obtained.


An execution context, from which an executor is obtained to use as the candidate object for determining the associated executor.

Return Value

A work guard constructed with the associated executor of the object t, which is obtained as if by calling get_associated_executor(t, ctx.get_executor()).