# std::iterator< Category, Type, Distance, Pointer, Reference > Struct Template Reference

Common iterator class. More...

`#include <stl_iterator_base_types.h>`

Inheritance diagram for std::iterator< Category, Type, Distance, Pointer, Reference >:

[legend]
List of all members.

## Public Types
typedef Category | iterator_category
| One of the tag types.
typedef Type | value_type
| The type "pointed to" by the iterator.
typedef Distance | difference_type
| Distance between iterators is represented as this type.
typedef Pointer | pointer
| This type represents a pointer-to-value_type.
typedef Reference | reference
| This type represents a reference-to-value_type.

## Detailed Description

### template<typename Category, typename Type, typename Distance = ptrdiff_t, typename Pointer = Type*, typename Reference = Type&>
struct std::iterator< Category, Type, Distance, Pointer, Reference >

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

Definition at line 106 of file stl_iterator_base_types.h.

## Member Typedef Documentation

template<typename Category, typename Type, typename Distance = ptrdiff_t, typename Pointer = Type*, typename Reference = Type&>
typedef Distance std::iterator< Category, Type, Distance, Pointer, Reference >::difference_type

| Distance between iterators is represented as this type. Reimplemented in std::reverse_iterator< Iterator >. Definition at line 113 of file stl_iterator_base_types.h.

template<typename Category, typename Type, typename Distance = ptrdiff_t, typename Pointer = Type*, typename Reference = Type&>
typedef Category std::iterator< Category, Type, Distance, Pointer, Reference >::iterator_category

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

template<typename Category, typename Type, typename Distance = ptrdiff_t, typename Pointer = Type*, typename Reference = Type&>
typedef Pointer std::iterator< Category, Type, Distance, Pointer, Reference >::pointer

| This type represents a pointer-to-value_type. Reimplemented in std::reverse_iterator< Iterator >. Definition at line 115 of file stl_iterator_base_types.h.

template<typename Category, typename Type, typename Distance = ptrdiff_t, typename Pointer = Type*, typename Reference = Type&>
typedef Reference std::iterator< Category, Type, Distance, Pointer, Reference >::reference

| This type represents a reference-to-value_type. Reimplemented in std::reverse_iterator< Iterator >. Definition at line 117 of file stl_iterator_base_types.h.

template<typename Category, typename Type, typename Distance = ptrdiff_t, typename Pointer = Type*, typename Reference = Type&>
typedef Type std::iterator< Category, Type, Distance, Pointer, Reference >::value_type

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

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

- stl_iterator_base_types.h