Utopia  2
Framework for studying models of complex & adaptive systems.
Classes | Namespaces | Functions
zip.hh File Reference
#include <iterator>
#include <tuple>
#include <type_traits>
#include <iostream>
#include <boost/hana/ext/std/tuple.hpp>
#include <boost/hana/transform.hpp>
#include <boost/hana/for_each.hpp>
#include "type_traits.hh"
Include dependency graph for zip.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Utopia::Itertools::ZipIterator< Iters >
 Iterator over an arbitrary number of collections. More...
 
class  Utopia::Itertools::zip< Containers >
 A range defined by instances of ZipIterator. More...
 

Namespaces

 Utopia
 
 Utopia::Itertools
 Tools for iterating over collections.
 

Functions

template<typename... Iterators>
 Utopia::Itertools::ZipIterator (std::tuple< Iterators... > iters) -> ZipIterator< Iterators... >
 Deduce the iterator types from the types inside the tuple. More...
 
template<typename Adaptor , typename... Containers>
auto Utopia::Itertools::adapt_zip (Adaptor &&adaptor, Containers &... containers)
 Return a zip iterator built from an adapter applied to containers. More...
 
template<typename... Containers>
auto Utopia::Itertools::begin (zip< Containers... > &zipper)
 Begin function like std::begin. More...
 
template<typename... Containers>
auto Utopia::Itertools::end (zip< Containers... > &zipper)
 end function like std::end More...
 
template<typename... Containers>
auto Utopia::Itertools::cbegin (zip< Containers... > &zipper)
 Begin function like std::begin. More...
 
template<typename... Containers>
auto Utopia::Itertools::cend (zip< Containers... > &zipper)
 end function like std::end More...
 
template<typename... Containers>
auto Utopia::Itertools::rbegin (zip< Containers... > &zipper)
 Begin function like std::begin. More...
 
template<typename... Containers>
auto Utopia::Itertools::rend (zip< Containers... > &zipper)
 end function like std::end More...