std::ranges::join_view<V>::iterator
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   template< bool Const > class /*iterator*/  | 
 (since C++20)  (exposition only*)  | 
|
The return type of join_view::begin, and of join_view::end when both the outer range V and the inner range ranges::range_reference_t<V> satisfy common_range and the parent join_view is a forward_range.
If V is not a simple view (e.g. if ranges::iterator_t<const V> is invalid or different from ranges::iterator_t<V>), Const is true for iterators returned from the const overloads, and false otherwise. If V is a simple view, Const is true if and only if ranges::range_reference_t<V> is a reference.
Member types
Data members
| Member | Definition | 
 OuterIter outer_ (private)
 | 
 An outer iterator (exposition-only member object*)  | 
 InnerIter inner_ (private)
 | 
 An inner iterator (exposition-only member object*)  | 
 Parent* parent_ (private)
 | 
 A pointer to the parent object (exposition-only member object*)  | 
Member functions
|   constructs an iterator  (public member function)  | |
|   accesses the element  (public member function)  | |
|   advances or decrements the underlying iterators  (public member function)  | |
|  skips over empty inner ranges (exposition-only member function*)  | 
Non-member functions
|    (C++20)  | 
  compares the underlying iterators  (function)  | 
|    (C++20)  | 
  casts the result of dereferencing the underlying iterator to its associated rvalue reference type  (function)  | 
|    (C++20)  | 
  swaps the objects pointed to by two underlying iterators  (function)  |