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>. The name is for exposition only.
|
Member functions
constructs a new basic_const_iterator (public member function) | |
assigns another basic_const_iterator (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 basic_const_iterator (public member function) |
Member objects
| Member name | Definition |
current (private)
|
the underlying iterator from which base() copies or moves, the name is for exposition only
|
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 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 |