Files
cppdraft_translate/cppdraft/depr/iterator.md
2025-10-25 03:02:53 +03:00

1.7 KiB

[depr.iterator]

Annex D (normative) Compatibility features [depr]

D.17 Deprecated iterator class template [depr.iterator]

1

#

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; };}

2

#

Theiterator template may be used as a base class to ease the definition of required types for new iterators.

3

#

[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]

4

#

[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&> {// code implementing ++, etc.};

— end example]