std::ranges::zip_view<Views...>::iterator

From cppreference.com
< cpp‎ | ranges‎ | zip view
 
 
Ranges library
Range access
Range conversions
(C++23)
Range primitives



Dangling iterator handling
Range concepts
Views

Range factories
Range adaptors
Range generators
Range adaptor objects
Range adaptor closure objects
Helper items
(until C++23)(C++23)


 
 
template< bool Const >
class /*iterator*/;
(1) (exposition only*)
Helper concepts
template< bool C, class... Views >

concept /*all-forward*/ =

    (ranges::forward_range<std::conditional_t<C, const Views, Views>> && ...);
(2) (exposition only*)
template< bool C, class... Views >

concept /*all-bidirectional*/ =

    (ranges::bidirectional_range<std::conditional_t<C, const Views, Views>> && ...);
(3) (exposition only*)
template< bool C, class... Views >

concept /*all-random-access*/ =

    (ranges::random_access_range<std::conditional_t<C, const Views, Views>> && ...);
(4) (exposition only*)

The iterator type of a possibly const-qualified zip_view, returned by zip_view::begin and in certain cases by zip_view::end. The name of this class template (shown here as iterator) is unspecified.

The type /*iterator*/<true> or /*iterator*/<false> treats the underlying views as const-qualified or non-const-qualified respectively.

Member types

Member type Definition
iterator_concept
iterator_category
value_type
difference_type

Data members

Typical implementations of iterator hold only one non-static data member: a std::tuple<ranges::iterator_t<Views>...> or std::tuple<ranges::iterator_t<const Views>...> when Const is false or true respectively.

For the purpose of exposition, the underlying iterators in that std::tuple are shown as is_... here.

Member functions

constructs an iterator
(public member function)
(C++23)
obtains a tuple-like value that consists of underlying pointed-to elements
(public member function)
obtains a tuple-like value that consists of underlying elements at given offset
(public member function)
advances or decrements the underlying iterators
(public member function)

Non-member functions

compares the underlying iterators
(function)
performs iterator arithmetic on underlying iterators
(function)
(C++23)
obtains a tuple-like value that denotes underlying pointed-to elements to be moved
(function)
(C++23)
swaps underlying pointed-to elements
(function)