emlabcpp
modern opinionated embedded C++ library
emlabcpp::zip_iterator< Iterators > Class Template Reference

zip_ierator iterates over a group of iterators, where value is a tuple of references to value for each iterator. More...

#include <zip.h>

Public Member Functions

constexpr zip_iterator (Iterators... iters)
 
constexpr zip_iterator operator++ ()
 Increases each iterator. More...
 
constexpr zip_iterator operator-- ()
 Decreases each iterator. More...
 
constexpr zip_iteratoroperator+= (std::ptrdiff_t m)
 
constexpr std::ptrdiff_t operator- (zip_iterator< Iterators... > const &other) const
 
constexpr auto operator* ()
 Dereference of each iterator, returns tuple of references to the operator* of iterators. More...
 
constexpr bool operator== (zip_iterator< Iterators... > const &other) const
 Two zip iterators are equal if all of their iterators are equal. More...
 

Detailed Description

template<typename... Iterators>
class emlabcpp::zip_iterator< Iterators >

zip_ierator iterates over a group of iterators, where value is a tuple of references to value for each iterator.

The design expects that all ranges of iterators are of same size.

Constructor & Destructor Documentation

◆ zip_iterator()

template<typename... Iterators>
constexpr emlabcpp::zip_iterator< Iterators >::zip_iterator ( Iterators...  iters)
inlineconstexpr

Member Function Documentation

◆ operator*()

template<typename... Iterators>
constexpr auto emlabcpp::zip_iterator< Iterators >::operator* ( )
inlineconstexpr

Dereference of each iterator, returns tuple of references to the operator* of iterators.

◆ operator++()

template<typename... Iterators>
constexpr zip_iterator emlabcpp::zip_iterator< Iterators >::operator++ ( )
inlineconstexpr

Increases each iterator.

◆ operator+=()

template<typename... Iterators>
constexpr zip_iterator& emlabcpp::zip_iterator< Iterators >::operator+= ( std::ptrdiff_t  m)
inlineconstexpr

References emlabcpp::for_each().

◆ operator-()

template<typename... Iterators>
constexpr std::ptrdiff_t emlabcpp::zip_iterator< Iterators >::operator- ( zip_iterator< Iterators... > const &  other) const
inlineconstexpr

◆ operator--()

template<typename... Iterators>
constexpr zip_iterator emlabcpp::zip_iterator< Iterators >::operator-- ( )
inlineconstexpr

Decreases each iterator.

◆ operator==()

template<typename... Iterators>
constexpr bool emlabcpp::zip_iterator< Iterators >::operator== ( zip_iterator< Iterators... > const &  other) const
inlineconstexpr

Two zip iterators are equal if all of their iterators are equal.


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