trait detects whether a type T has an associated executor that is convertible
from type Executor.
template< typename T, typename Executor> struct uses_executor
Meets the BinaryTypeTrait requirements. The Asio library provides a definition
that is derived from false_type. A program may specialize this template to
derive from true_type for a user-defined type T that can be constructed with
an executor, where the first argument of a constructor has type
and the second argument is convertible from type Executor.