The unspecialized definition for this template inherits from true_type if T::allocator_type exists and is_convertible<Alloc,T::allocator_type>::value is not false.
Classes that do not fill this requirement but still use an allocator shall specialize this template to derive from true_type if either:
the last argument of a constructor has type Alloc.
or, the first argument of a constructor has type allocator_arg_t and the second argument has type Alloc.