Files
2025-10-25 03:02:53 +03:00

2.3 KiB
Raw Permalink Blame History

[const.iterators.alias]

24 Iterators library [iterators]

24.5 Iterator adaptors [predef.iterators]

24.5.3 Constant iterators and sentinels [const.iterators]

24.5.3.2 Alias templates [const.iterators.alias]

🔗

`template<indirectly_readable It> using iter_const_reference_t = common_reference_t<const iter_value_t&&, iter_reference_t>;

template concept constant-iterator = // exposition only input_iterator && same_as<iter_const_reference_t, iter_reference_t>;

template<input_iterator I> using const_iterator = see below; `

1

#

Result: If I models constant-iterator, I.

Otherwise, basic_const_iterator.

🔗

template<[semiregular](concepts.object#concept:semiregular "18.6Object concepts[concepts.object]") S> using [const_sentinel](#lib:const_sentinel "24.5.3.2Alias templates[const.iterators.alias]") = see below;

2

#

Result: If S models input_iterator, const_iterator.

Otherwise, S.