The implementation shall provide a definition that is
derived from true_type
if the qualified-id T::allocator_type
is valid and denotes a type ([temp.deduct]
is_convertible_v<Alloc, T::allocator_type> != false
, otherwise it shall be
derived from false_type.
A program may specialize this template to derive from
for a program-defined type T
that does not have a nested
but nonetheless can be constructed with an allocator where
- the first argument of a constructor has type allocator_arg_t and the
second argument has type Alloc or
- the last argument of a constructor has type Alloc.