[const.iterators.general]

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

## 24.5 Iterator adaptors [[predef.iterators]](predef.iterators#const.iterators.general)

### 24.5.3 Constant iterators and sentinels [[const.iterators]](const.iterators#general)

#### 24.5.3.1 General [const.iterators.general]

[1](#1)

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

Class template basic_const_iterator is an iterator adaptor
with the same behavior as the underlying iterator
except that its indirection operator implicitly converts
the value returned by the underlying iterator's indirection operator
to a type such that the adapted iterator is
a constant iterator ([[iterator.requirements]](iterator.requirements "24.3 Iterator requirements"))[.](#1.sentence-1)

Some generic algorithms can be called with constant iterators to avoid mutation[.](#1.sentence-2)

[2](#2)

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

Specializations of basic_const_iterator are constant iterators[.](#2.sentence-1)
