std::basic_const_iterator
|
Defined in header
<iterator> |
||
|
template< std::input_iterator Iter >
class basic_const_iterator; |
(since C++23) | |
std::basic_const_iterator is an iterator adaptor which behaves exactly like the underlying iterator (which must be at least an LegacyInputIterator or model input_iterator), except that dereferencing converts the value returned by the underlying iterator as immutable. Specializations of std::basic_const_iterator are constant iterators, that is, the iterator can never be used as an output iterator because modifying elements is not allowed.
Member types
| Member type | Definition |
iterator_category |
If
Otherwise, there is no member |
iterator_concept |
|
value_type |
std::iter_value_t<Iter> |
difference_type |
std::iter_difference_t<Iter> |
reference (private) |
std::iter_const_reference_t<Iter>. (exposition-only member type*) |
Member objects
| Member name | Definition |
current (private) |
the underlying iterator from which base() copies or moves(exposition-only member object*) |
Member functions
| constructs a new iterator adaptor (public member function) |
|
| assigns another iterator adaptor (public member function) |
|
| accesses the underlying iterator (public member function) |
|
| accesses the pointed-to element (public member function) |
|
| accesses an element by index (public member function) |
|
| advances or decrements the iterator (public member function) |
Non-member functions
| compares the underlying iterators (function template) |
|
|
(C++23)
|
advances the iterator (function template) |
|
(C++23)
|
computes the distance between two iterator adaptors (function template) |
|
(C++23)
|
casts the result of dereferencing the underlying iterator to its associated rvalue reference type (function) |
Helper classes
determines the common type of an iterator and an adapted basic_const_iterator type(class template specialization) |
Helper alias templates
|
template< std::input_iterator I >
using const_iterator = /* see description */; |
(since C++23) | |
If I models constant-iterator (an exposition-only concept), then const_iterator<I> denotes a type I. Otherwise, basic_const_iterator<I>.
|
template< std::semiregular S >
using const_sentinel = /* see description */; |
(since C++23) | |
If S models input_iterator, then const_sentinel<S> denotes a type const_iterator<S>. Otherwise, S.
Helper function templates
|
template< std::input_iterator T >
constexpr const_iterator<T> make_const_iterator( I it ) { return it; } |
(since C++23) | |
|
template< std::semiregular S >
constexpr const_sentinel<S> make_const_sentinel( S s ) { return s; } |
(since C++23) | |
Example
| This section is incomplete Reason: example |