[iterator.cpp17.general]

# 24 Iterators library [[iterators]](./#iterators)

## 24.3 Iterator requirements [[iterator.requirements]](iterator.requirements#iterator.cpp17.general)

### 24.3.5 C++17 iterator requirements [[iterator.cpp17]](iterator.cpp17#general)

#### 24.3.5.1 General [iterator.cpp17.general]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L1992)

In the following sections,a andb denote values of typeX or const X,difference_type and reference refer to the
types iterator_traits<X>​::​difference_type anditerator_traits<X>​::​reference, respectively,n denotes a value ofdifference_type,u,tmp,
andm denote identifiers,r denotes a value ofX&,t denotes a value of value typeT,o denotes a value of some type that is writable to the output iterator[.](#1.sentence-1)

[*Note [1](#note-1)*:

For an iterator type X there must be an instantiation
of iterator_traits<X> ([[iterator.traits]](iterator.traits "24.3.2.3 Iterator traits"))[.](#1.sentence-2)

â *end note*]
