template< bool Const >
class /*iterator*/;
(since C++20)

The return type of elements_view::begin, and of elements_view::end when the underlying view is a common_range.

The type /*iterator*/<true> is returned by the const-qualified overloads. The type /*iterator*/<false> is returned by the non-const-qualified overloads.

The name of this class template (shown here as /*iterator*/) is unspecified.

Data members

Typical implementations of /*iterator*/ hold only one non-static data member current_ of type ranges::iterator_t<Base>. The name is for exposition only.

Member types

Member type Definition
Base (private) const V if Const is true, otherwise V. The name is for exposition only.
iterator_concept Denotes:
iterator_category Not defined, if Base does not model forward_range. Otherwise,
value_type std::remove_cvref_t<std::tuple_element_t<N, ranges::range_value_t<Base>>>
difference_type ranges::range_difference_t<Base>

Member functions

constructs an iterator
(public member function)
returns the underlying iterator
(public member function)
accesses the Nth tuple element
(public member function)
accesses an element by index
(public member function)
advances or decrements the underlying iterator
(public member function)

Non-member functions

compares the underlying iterators
performs iterator arithmetic

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
P2259R1 C++20 member iterator_category is always defined defined only if Base models forward_range
LWG 3555 C++20 the definition of iterator_concept ignores const made to consider

See also

the return type of ranges::transform_view::begin, and of ranges::transform_view::end when the underlying view is a common_range
(private member class template)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.