LLVM 19.0.0git
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | List of all members
llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters > Struct Template Reference

#include "llvm/ADT/STLExtras.h"

Inheritance diagram for llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >:
Inheritance graph
[legend]

Public Types

using Base = zip_traits< ZipType, ReferenceTupleType, Iters... >
 
using IndexSequence = std::index_sequence_for< Iters... >
 
using value_type = typename Base::value_type
 
- Public Types inherited from llvm::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >
using iterator_category = IteratorCategoryT
 
using value_type = T
 
using difference_type = DifferenceTypeT
 
using pointer = PointerT
 
using reference = ReferenceT
 

Public Member Functions

 zip_common (Iters &&... ts)
 
value_type operator* () const
 
ZipType & operator++ ()
 
ZipType & operator-- ()
 
bool all_equals (zip_common &other)
 Return true if all the iterator are matching other's iterators.
 
- Public Member Functions inherited from llvm::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >
DerivedT operator+ (DifferenceTypeT n) const
 
DerivedT operator- (DifferenceTypeT n) const
 
DerivedT & operator++ ()
 
DerivedT operator++ (int)
 
DerivedT & operator-- ()
 
DerivedT operator-- (int)
 
bool operator!= (const DerivedT &RHS) const
 
bool operator> (const DerivedT &RHS) const
 
bool operator<= (const DerivedT &RHS) const
 
bool operator>= (const DerivedT &RHS) const
 
PointerProxy operator-> () const
 
ReferenceProxy operator[] (DifferenceTypeT n) const
 

Public Attributes

std::tuple< Iters... > iterators
 

Protected Member Functions

template<size_t... Ns>
value_type deref (std::index_sequence< Ns... >) const
 
template<size_t... Ns>
void tup_inc (std::index_sequence< Ns... >)
 
template<size_t... Ns>
void tup_dec (std::index_sequence< Ns... >)
 
template<size_t... Ns>
bool test_all_equals (const zip_common &other, std::index_sequence< Ns... >) const
 

Additional Inherited Members

- Protected Types inherited from llvm::iterator_facade_base< DerivedT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT >
enum  { IsRandomAccess , IsBidirectional }
 

Detailed Description

template<typename ZipType, typename ReferenceTupleType, typename... Iters>
struct llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >

Definition at line 710 of file STLExtras.h.

Member Typedef Documentation

◆ Base

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
using llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::Base = zip_traits<ZipType, ReferenceTupleType, Iters...>

Definition at line 711 of file STLExtras.h.

◆ IndexSequence

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
using llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::IndexSequence = std::index_sequence_for<Iters...>

Definition at line 712 of file STLExtras.h.

◆ value_type

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
using llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::value_type = typename Base::value_type

Definition at line 713 of file STLExtras.h.

Constructor & Destructor Documentation

◆ zip_common()

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::zip_common ( Iters &&...  ts)
inline

Definition at line 738 of file STLExtras.h.

Member Function Documentation

◆ all_equals()

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
bool llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::all_equals ( zip_common< ZipType, ReferenceTupleType, Iters > &  other)
inline

Return true if all the iterator are matching other's iterators.

Definition at line 755 of file STLExtras.h.

References llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::test_all_equals().

◆ deref()

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
template<size_t... Ns>
value_type llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::deref ( std::index_sequence< Ns... >  ) const
inlineprotected

◆ operator*()

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
value_type llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::operator* ( ) const
inline

Definition at line 740 of file STLExtras.h.

◆ operator++()

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
ZipType & llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::operator++ ( )
inline

◆ operator--()

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
ZipType & llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::operator-- ( )
inline

◆ test_all_equals()

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
template<size_t... Ns>
bool llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::test_all_equals ( const zip_common< ZipType, ReferenceTupleType, Iters > &  other,
std::index_sequence< Ns... >   
) const
inlineprotected

◆ tup_dec()

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
template<size_t... Ns>
void llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::tup_dec ( std::index_sequence< Ns... >  )
inlineprotected

◆ tup_inc()

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
template<size_t... Ns>
void llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::tup_inc ( std::index_sequence< Ns... >  )
inlineprotected

Member Data Documentation

◆ iterators

template<typename ZipType , typename ReferenceTupleType , typename... Iters>
std::tuple<Iters...> llvm::detail::zip_common< ZipType, ReferenceTupleType, Iters >::iterators

The documentation for this struct was generated from the following file: