# std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference > Struct Template Reference

`#include <stl_iterator_base_types.h>`

Inheritance diagram for std::iterator:

[legend]
List of all members.

## Public Types

typedef _Category | iterator_category
| One of the tag types. More...
typedef _Tp | value_type
| The type "pointed to" by the iterator. More...
typedef _Distance | difference_type
| Distance between iterators is represented as this type. More...
typedef _Pointer | pointer
| This type represents a pointer-to-value_type. More...
typedef _Reference | reference
| This type represents a reference-to-value_type. More...

## Detailed Description

### template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>
struct std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >

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?)

Definition at line 102 of file stl_iterator_base_types.h.

## Member Typedef Documentation

template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>
typedef _Distance std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >::difference_type

| Distance between iterators is represented as this type. Definition at line 108 of file stl_iterator_base_types.h.

template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>
typedef _Category std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >::iterator_category

| One of the tag types. Definition at line 104 of file stl_iterator_base_types.h.

template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>
typedef _Pointer std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >::pointer

| This type represents a pointer-to-value_type. Definition at line 110 of file stl_iterator_base_types.h.

template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>
typedef _Reference std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >::reference

| This type represents a reference-to-value_type. Definition at line 112 of file stl_iterator_base_types.h.

template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&>
typedef _Tp std::iterator< _Category, _Tp, _Distance, _Pointer, _Reference >::value_type

| The type "pointed to" by the iterator. Definition at line 106 of file stl_iterator_base_types.h.

The documentation for this struct was generated from the following file:

- stl_iterator_base_types.h