Introduction
This is an internal header file, included by other library headers.
You should not attempt to use it directly.
This file contains all of the general iterator-related utility types,
such as iterator_traits and struct iterator.
Functions
- __iterator_category
template<typename _Iter> inline typename iterator_traits<_Iter>::iterator_category __iterator_category(
const _Iter&)
Discussion
@if maint
This function is not a part of the C++ standard but is syntactic
sugar for internal library use only.
@endif
Typedefs
template<typename _Category, typename _Tp, typename _Distance =
ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&> struct iterator {
typedef _Category iterator_category;
typedef _Tp value_type;
typedef _Distance difference_type;
typedef _Pointer pointer;
typedef _Reference reference;
};
Discussion
@brief 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 @c operator++ and the like. (How could there be?)
template<typename _Iterator> struct iterator_traits {
typedef typename _Iterator::iterator_category iterator_category;
typedef typename _Iterator::value_type value_type;
typedef typename _Iterator::difference_type difference_type;
typedef typename _Iterator::pointer pointer;
typedef typename _Iterator::reference reference;
};
Discussion
This class does nothing but define nested typedefs. The general
version simply "forwards" the nested typedefs from the Iterator
argument. Specialized versions for pointers and pointers-to-const
provide tighter, more correct semantics.
Structs and Unions
struct input_iterator_tag {
};
Discussion
@defgroup iterator_tags Iterator Tags
These are empty types, used to distinguish different iterators. The
distinction is not made by what they contain, but simply by what they
are. Different underlying algorithms can then be used based on the
different operations supporetd by different iterator types.
|
Did this document help you? |
Yes: Tell us what works for you.
|
|
Last Updated: 2006-06-20