std::ranges::zip_view<Views...>:: end
| 
           
            
             constexpr
            
            
             auto
            
            end
            
             (
            
            
             )
            
             requires ( ! ( /*simple-view*/ < Views > && ... ) ; | (1) | (since C++23) | 
| 
           
            
             constexpr
            
            
             auto
            
            end
            
             (
            
            
             )
            
            
             const
            
             requires ( ranges:: range < const Views > && ... ) ; | (2) | (since C++23) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            ...
            
             Rs
            
            
             >
            
             
             concept
             
              /*zip-is-common*/
             
             
              =
             
              | (3) | ( exposition only* ) | 
       Returns an
       
        iterator
       
       or a
       
        sentinel
       
       that compares equal to the end iterator of the
       
        
         zip_view
        
       
       .
      
       Let
       
        
         
          views_
         
        
       
       denote the underlying tuple of views.
      
- return /*sentinel*/ < false > ( /*tuple-transform*/ ( ranges:: end , views_ ) ) ; ,
- if /*zip-is-common*/ < Views... > evaluates to false . Otherwise,
- return begin ( ) + std:: iter_difference_t < /*iterator*/ < false >> ( size ( ) ) ; ,
- if ( ranges:: random_access_range < Views > && ... ) evaluates to true . Otherwise,
- return /*iterator*/ < false > ( /*tuple-transform*/ ( ranges:: end , views_ ) ) ; .
- return /*sentinel*/ < true > ( /*tuple-transform*/ ( ranges:: end , views_ ) ) ; ,
- if /*zip-is-common*/ < const Views... > evaluates to false . Otherwise,
- return begin ( ) + std:: iter_difference_t < /*iterator*/ < true >> ( size ( ) ) ; ,
- if ranges:: random_access_range < const Views > && ... evaluates to true . Otherwise,
- return /*iterator*/ < true > ( /*tuple-transform*/ ( ranges:: end , views_ ) ) ; .
Parameters
(none)
Return value
       An iterator or sentinel representing the end of the
       
        zip_view
       
       , as described above.
      
Notes
       
        
         
          
           ranges::
           
            range
           
          
         
         
          <
         
         
          const
         
         
          
           ranges::
           
            zip_view
           
          
         
         
          <
         
         Views...
         
          >>
         
        
       
       is modeled if and only if for every type
       
        Vi
       
       in
       
        Views...
       
       ,
       
        
         
          const
         
         Vi
        
       
       models
       
        
         range
        
       
       .
      
Example
| This section is incomplete Reason: no example | 
See also
| returns an iterator to the beginning (public member function) | |
| 
           
            
             
              (C++20)
             
            
           
           | returns a sentinel indicating the end of a range (customization point object) |