Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
zip_iterator< T > Class Template Reference

The zip_iterator class. More...

#include <zip_view.hpp>

Public Types

using tuple_indexes = std::make_index_sequence< std::tuple_size_v< std::remove_reference_t< T > > >
 

Public Member Functions

 zip_iterator (T iter, T iter_end)
 
zip_iteratoroperator++ ()
 
bool operator!= (const zip_iterator &other) const
 
auto operator* () const
 

Private Member Functions

template<std::size_t... I>
auto get_refs (T t, std::index_sequence< I... >) const
 
template<class F , class A , std::size_t... I>
auto apply2_impl (F &&f, A &&a, A &&b, std::index_sequence< I... >)
 
template<class F , class A >
auto apply2 (F &&f, A &&a, A &&b)
 
template<class A , std::size_t... I>
bool if_any_impl (const A &t, std::index_sequence< I... >) const
 
template<class A >
bool if_any_in (A &&t) const
 
template<class F , class Tuple , std::size_t... I>
auto for_each_in_impl (F &&f, Tuple &&t, std::index_sequence< I... >) const
 
template<class F , class A >
void for_each_in_tuple (F &&f, A &&t) const
 

Static Private Member Functions

static auto ref (const auto &t)
 
static auto ref (auto &t)
 
static auto ref (const auto &&t)
 
static auto ref (auto &&t)
 

Private Attributes

iter
 
iter_end
 
std::size_t index = 0
 

Detailed Description

template<class T>
class zip_iterator< T >

The zip_iterator class.

Provides a zip iterator which is at end when any is at end

Examples
/opt/build/repo/barretenberg/cpp/src/barretenberg/common/zip_view.hpp.

Definition at line 94 of file zip_view.hpp.

Member Typedef Documentation

◆ tuple_indexes

Constructor & Destructor Documentation

◆ zip_iterator()

template<class T >
zip_iterator< T >::zip_iterator ( iter,
iter_end 
)
inline

Definition at line 99 of file zip_view.hpp.

Member Function Documentation

◆ apply2()

template<class T >
template<class F , class A >
auto zip_iterator< T >::apply2 ( F &&  f,
A &&  a,
A &&  b 
)
inlineprivate

◆ apply2_impl()

template<class T >
template<class F , class A , std::size_t... I>
auto zip_iterator< T >::apply2_impl ( F &&  f,
A &&  a,
A &&  b,
std::index_sequence< I... >   
)
inlineprivate

◆ for_each_in_impl()

template<class T >
template<class F , class Tuple , std::size_t... I>
auto zip_iterator< T >::for_each_in_impl ( F &&  f,
Tuple &&  t,
std::index_sequence< I... >   
) const
inlineprivate

◆ for_each_in_tuple()

template<class T >
template<class F , class A >
void zip_iterator< T >::for_each_in_tuple ( F &&  f,
A &&  t 
) const
inlineprivate

◆ get_refs()

template<class T >
template<std::size_t... I>
auto zip_iterator< T >::get_refs ( t,
std::index_sequence< I... >   
) const
inlineprivate

◆ if_any_impl()

template<class T >
template<class A , std::size_t... I>
bool zip_iterator< T >::if_any_impl ( const A &  t,
std::index_sequence< I... >   
) const
inlineprivate

◆ if_any_in()

template<class T >
template<class A >
bool zip_iterator< T >::if_any_in ( A &&  t) const
inlineprivate

◆ operator!=()

template<class T >
bool zip_iterator< T >::operator!= ( const zip_iterator< T > &  other) const
inline

◆ operator*()

template<class T >
auto zip_iterator< T >::operator* ( ) const
inline

◆ operator++()

template<class T >
zip_iterator & zip_iterator< T >::operator++ ( )
inline

◆ ref() [1/4]

template<class T >
static auto zip_iterator< T >::ref ( auto &&  t)
inlinestaticprivate

Definition at line 131 of file zip_view.hpp.

◆ ref() [2/4]

template<class T >
static auto zip_iterator< T >::ref ( auto &  t)
inlinestaticprivate

Definition at line 128 of file zip_view.hpp.

◆ ref() [3/4]

template<class T >
static auto zip_iterator< T >::ref ( const auto &&  t)
inlinestaticprivate

Definition at line 130 of file zip_view.hpp.

◆ ref() [4/4]

template<class T >
static auto zip_iterator< T >::ref ( const auto &  t)
inlinestaticprivate

Member Data Documentation

◆ index

template<class T >
std::size_t zip_iterator< T >::index = 0
private

◆ iter

template<class T >
T zip_iterator< T >::iter
private

◆ iter_end

template<class T >
T zip_iterator< T >::iter_end
private

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