#include <zip.h>
Public Types | |
Data types | |
| using | difference_type = std::ptrdiff_t |
| using | reference = std::tuple< typename std::iterator_traits< Iters >::reference...> |
| using | value_type = std::remove_cv_t< reference > |
| using | pointer = std::add_pointer_t< std::remove_reference_t< reference >> |
| using | iterator_category = std::forward_iterator_tag |
Public Member Functions | |
Constructors | |
| zip_iterator ()=default | |
| Constructor: all iterators are default-constructed. More... | |
| zip_iterator (Iters &&...iterators) | |
| Constructor: copies all iterator values. More... | |
Access | |
| auto | operator* () const |
| Returns a tuple with values from all dereferenced iterators. More... | |
| template<std::size_t Index> | |
| decltype(auto) | get () const |
Returns the iterator at the specified Index. More... | |
Modification | |
| this_iterator_t & | operator++ () |
| Increments all the iterators. More... | |
| this_iterator_t | operator++ (int) |
Comparisons | |
| template<std::size_t OtherLead, typename... OtherIter> | |
| bool | operator!= (zip_iterator< OtherLead, OtherIter...> const &other) const |
Comparison (based on the Lead iterator only). More... | |
| template<std::size_t OtherLead, typename... OtherIter> | |
| bool | operator== (zip_iterator< OtherLead, OtherIter...> const &other) const |
Comparison (based on the Lead iterator only). More... | |
Private Types | |
| using | this_iterator_t = zip_iterator< Lead, Iters...> |
| Type of this object. More... | |
Private Member Functions | |
| template<std::size_t... Indices> | |
| void | increment_impl (std::index_sequence< Indices...>) |
| template<std::size_t... Indices> | |
| auto | dereference_impl (std::index_sequence< Indices...>) const |
Static Private Member Functions | |
| template<typename... Args> | |
| static void | expandStatements (Args &...args) |
| Helper to trigger parameter pack expansion in expressions. More... | |
Private Attributes | |
| std::tuple< Iters...> | fIterators |
| Tuple of all zipped iterators. More... | |
| using util::details::zip_iterator< Lead, Iters >::difference_type = std::ptrdiff_t |
| using util::details::zip_iterator< Lead, Iters >::iterator_category = std::forward_iterator_tag |
| using util::details::zip_iterator< Lead, Iters >::pointer = std::add_pointer_t<std::remove_reference_t<reference>> |
| using util::details::zip_iterator< Lead, Iters >::reference = std::tuple<typename std::iterator_traits<Iters>::reference...> |
|
private |
| using util::details::zip_iterator< Lead, Iters >::value_type = std::remove_cv_t<reference> |
|
default |
Constructor: all iterators are default-constructed.
|
inline |
|
inlineprivate |
|
inlinestaticprivate |
|
inline |
|
inlineprivate |
|
inline |
|
inline |
|
inline |
|
inline |
Returns a copy of the current iterators, then increments all of the iterators in this object.
|
inline |
|
private |
1.8.5