http://www.dinkumware.com/manuals/reader.aspx?lib=cpl&h=lib_cont.html
According to the C++ Standard a container class defined by STL can assume that:
All objects of class Alloc compare equal.
Type Alloc::const_pointer is the same as const Ty *.
Type Alloc::const_reference is the same as const Ty&.
Type Alloc::pointer is the same as Ty *.
Type Alloc::reference is the same as Ty&.
In this implementation, however, containers do not make such simplifying assumptions. Thus, they work properly with allocator objects that are more ambitious:
All objects of class Alloc need not compare equal. (You can maintain multiple pools of storage.)
Type Alloc::const_pointer need not be the same as const Ty *. (A const pointer can be a class.)
Type Alloc::pointer need not be the same as Ty *. (A pointer can be a class.)