Common iterator class.
This class does nothing but define nested typedefs. Iterator classes can inherit from this class to save some work. The typedefs are then used in specializations and overloading.
In particular, there are no default implementations of requirements such as
operator++ and the like. (How could there be?)
|typedef _Distance std::iterator::difference_type|
|typedef _Category std::iterator::iterator_category|
|typedef _Pointer std::iterator::pointer|
|typedef _Reference std::iterator::reference|
|typedef _Tp std::iterator::value_type|