The class template 
allocator_traits supplies a uniform interface to all
allocator types
.An allocator cannot be a non-class type, however, even if 
allocator_traits
supplies the entire required interface
.[
Note 1: 
Thus, it is always possible to create
a derived class from an allocator
. — 
end note]
If a program declares
an explicit or partial specialization of 
allocator_traits,
the program is ill-formed, no diagnostic required
.