LLVM 22.0.0git
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 >:
[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 679 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 680 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 681 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 682 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 707 of file STLExtras.h.

References iterators.

Referenced by all_equals(), and test_all_equals().

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 724 of file STLExtras.h.

References test_all_equals(), and zip_common().

◆ 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

Definition at line 687 of file STLExtras.h.

References iterators.

Referenced by operator*().

◆ operator*()

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

Definition at line 709 of file STLExtras.h.

References deref().

◆ operator++()

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

Definition at line 711 of file STLExtras.h.

References tup_inc().

◆ 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

Definition at line 700 of file STLExtras.h.

References iterators, and zip_common().

Referenced by all_equals().

◆ 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

Definition at line 695 of file STLExtras.h.

References iterators.

Referenced by operator--().

◆ 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

Definition at line 691 of file STLExtras.h.

References iterators.

Referenced by operator++().

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: