[depr.iterator] (original) (raw)
Annex D (normative) Compatibility features [depr]
D.17 Deprecated iterator class template [depr.iterator]
The header has the following addition:namespace std { template<class Category, class T, class Distance = ptrdiff_t,class Pointer = T*, class Reference = T&> struct iterator { using iterator_category = Category;using value_type = T;using difference_type = Distance;using pointer = Pointer;using reference = Reference;};}
Theiteratortemplate may be used as a base class to ease the definition of required types for new iterators.
[Note 1:
If the new iterator type is a class template, then these aliases will not be visible from within the iterator class's template definition, but only to callers of that class.
— _end note_]
[Example 1:
If a C++ program wants to define a bidirectional iterator for some data structure containing double and such that it works on a large memory model of the implementation, it can do so with:class MyIterator : public iterator<bidirectional_iterator_tag, double, long, T*, T&> { };
— _end example_]