template< 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.
A work guard constructed with the associated executor of the object
t, which is obtained as if by calling