C++ Template Metaprogramming
Solutions to the exercises throughout the book
Loading...
Searching...
No Matches
chapter-7-zip_view.hpp File Reference

"Zip" corresponding elements of N arrays into a sequence of N-length subsequences. More...

#include <boost/mpl/begin_end.hpp>
#include <boost/mpl/deref.hpp>
#include <boost/mpl/iterator_category.hpp>
#include <boost/mpl/iterator_range.hpp>
#include <boost/mpl/placeholders.hpp>
#include <boost/mpl/transform.hpp>
#include <boost/mpl/empty.hpp>
#include <boost/mpl/find_if.hpp>
#include <boost/mpl/filter_view.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/static_assert.hpp>
#include <boost/mpl/or.hpp>
#include <boost/mpl/at.hpp>

Go to the source code of this file.

Classes

struct  chapter7::extract_iterator_category< S >
 A simple metafunction to get the iterator category from the first iterator in a sequence. More...
 
struct  chapter7::least_refined_iterator_category< S >
 Assuming a sequence of sequences, find the least refined category of all subsequences. More...
 
struct  chapter7::zip_iterator< IteratorSeq, Category >
 An iterator into a sequence of sequences. More...
 
struct  chapter7::zip_view_tag
 Type for tag-based implementation of algorithms below. More...
 
struct  chapter7::zip_view< Sequences >
 Wraps corresponding elements across a sequence of sequences. More...
 
struct  boost::mpl::next< chapter7::zip_iterator< IteratorSeq, Category > >
 Creates a sequence of the next element for each (sub-)iterator. More...
 
struct  boost::mpl::advance< chapter7::zip_iterator< IteratorSeq, random_access_iterator_tag >, N >
 Creates a sequence from the result of boost::mpl::advance. More...
 
struct  boost::mpl::at_impl< chapter7::zip_view_tag >
 Create a sequence from the result of boost::mpl::at. More...
 
struct  boost::mpl::at_impl< chapter7::zip_view_tag >::apply_impl
 
struct  boost::mpl::at_impl< chapter7::zip_view_tag >::apply_impl< S, random_access_iterator_tag, N >
 
struct  boost::mpl::at_impl< chapter7::zip_view_tag >::apply
 
struct  boost::mpl::at_impl< chapter7::zip_view_tag >::apply< chapter7::zip_view< S >, N >
 
struct  boost::mpl::prior< chapter7::zip_iterator< IteratorSeq, Category > >
 Specialize prior, but only for bidirection or better iterator types. More...
 

Namespaces

namespace  chapter7
 Provide utilities availble to all Chapter 7 solutions.
 
namespace  boost
 Exists to inject functionality into the Boost namespace.
 
namespace  boost::mpl
 Exists to inject functionality into the Boost MPL namespace.
 

Detailed Description

"Zip" corresponding elements of N arrays into a sequence of N-length subsequences.

Author
Matt Bisson

Definition in file chapter-7-zip_view.hpp.