[const.iterators.alias] # 24 Iterators library [[iterators]](./#iterators) ## 24.5 Iterator adaptors [[predef.iterators]](predef.iterators#const.iterators.alias) ### 24.5.3 Constant iterators and sentinels [[const.iterators]](const.iterators#alias) #### 24.5.3.2 Alias templates [const.iterators.alias] [🔗](#concept:constant-iterator) `template<[indirectly_readable](iterator.concept.readable#concept:indirectly_readable "24.3.4.2 Concept indirectly_­readable [iterator.concept.readable]") It> using [iter_const_reference_t](#lib:iter_const_reference_t "24.5.3.2 Alias templates [const.iterators.alias]") = common_reference_t&&, iter_reference_t>; template concept [constant-iterator](#concept:constant-iterator "24.5.3.2 Alias templates [const.iterators.alias]") = // exposition only [input_iterator](iterator.concept.input#concept:input_iterator "24.3.4.9 Concept input_­iterator [iterator.concept.input]") && [same_as](concept.same#concept:same_as "18.4.2 Concept same_­as [concept.same]"), iter_reference_t>; template<[input_iterator](iterator.concept.input#concept:input_iterator "24.3.4.9 Concept input_­iterator [iterator.concept.input]") I> using [const_iterator](#lib:const_iterator "24.5.3.2 Alias templates [const.iterators.alias]") = see below; ` [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L4207) *Result*: If I models [*constant-iterator*](#concept:constant-iterator "24.5.3.2 Alias templates [const.iterators.alias]"), I[.](#1.sentence-1) Otherwise, basic_const_iterator[.](#1.sentence-2) [🔗](#itemdecl:2) `template<[semiregular](concepts.object#concept:semiregular "18.6 Object concepts [concepts.object]") S> using [const_sentinel](#lib:const_sentinel "24.5.3.2 Alias templates [const.iterators.alias]") = see below; ` [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L4219) *Result*: If S models [input_iterator](iterator.concept.input#concept:input_iterator "24.3.4.9 Concept input_­iterator [iterator.concept.input]"), const_iterator[.](#2.sentence-1) Otherwise, S[.](#2.sentence-2)