C++ Template Metaprogramming
Solutions to the exercises throughout the book
Loading...
Searching...
No Matches
exercise-5-6.hpp File Reference

Solution to Exercise 5-6. More...

#include <boost/mpl/begin_end.hpp>
#include <boost/mpl/deref.hpp>
#include <boost/mpl/iterator_tags.hpp>
#include <boost/mpl/next_prior.hpp>
#include <boost/type_traits/is_array.hpp>
#include <boost/type_traits/is_same.hpp>

Go to the source code of this file.

Classes

struct  exercise_5_6::dimensions_tag
 A tag for tag-dispatched sequence metafunctions. More...
 
struct  exercise_5_6::dimensions< T >
 Represent the dimensions in an array type as a sequence of numbers. More...
 
struct  exercise_5_6::dimensions< T[N]>
 Basically a tuple where the "head" is the value, and the rest is accessed by "tail". More...
 
struct  exercise_5_6::dimensions_iterator< S >
 Define a (forward-only) iterator for our dimensions sequence. More...
 
struct  boost::mpl::begin_impl< exercise_5_6::dimensions_tag >
 Just wrap the sequence in an iterator. More...
 
struct  boost::mpl::begin_impl< exercise_5_6::dimensions_tag >::apply
 
struct  boost::mpl::end_impl< exercise_5_6::dimensions_tag >
 The end is a boost::mpl::void_ type. More...
 
struct  boost::mpl::end_impl< exercise_5_6::dimensions_tag >::apply
 
struct  boost::mpl::deref< exercise_5_6::dimensions_iterator< S > >
 The iterator just contains a subset of the underlying sequence. More...
 
struct  boost::mpl::next< exercise_5_6::dimensions_iterator< S > >
 The sequence itself defines "next". More...
 

Namespaces

namespace  exercise_5_6
 Encapsulate solution for Exercise 5-6.
 
namespace  boost
 Exists to inject functionality into the Boost namespace.
 
namespace  boost::mpl
 Exists to inject functionality into the Boost MPL namespace.
 

Detailed Description

Solution to Exercise 5-6.

Author
Matt Bisson

Definition in file exercise-5-6.hpp.