type_vector.hpp File Reference


Detailed Description

A collection of MPL-style type random access containers.

Author:
Lubomir Bourdev and Hailin Jin
Adobe Systems Incorporated

#include "../../core/gil_config.hpp"
#include <boost/mpl/at.hpp>
#include <boost/mpl/divides.hpp>
#include <boost/mpl/find.hpp>
#include <boost/mpl/front.hpp>
#include <boost/mpl/modulus.hpp>
#include <boost/mpl/order.hpp>
#include <boost/mpl/pop_front.hpp>
#include <boost/mpl/pop_back.hpp>
#include <boost/mpl/set.hpp>
#include <boost/mpl/size.hpp>
#include <boost/mpl/sizeof.hpp>
#include <boost/mpl/times.hpp>
#include <boost/mpl/transform.hpp>
#include <boost/mpl/vector.hpp>

Go to the source code of this file.


Namespaces

namespace  boost
namespace  boost::mpl
namespace  boost::mpl::detail

Classes

struct  cross_vector
 Represents the virtual cross-product of the types generated from VecOfVecs.

INPUT: VecOfVecs - a vector of vector types. For example [ [A1,A2,A3], [B1,B2], [C1,C2,C3,C4] ] Each element must be a non-empty mpl vector TypeGen - a metafunction that generates a type from a vector of types, each of which can be selected from the corresponding vector in VecOfVecs. For example, [A1, B2, C4]. More...

struct  cross_iterator
 Iterator of cross_vector. More...
class  select_subvector_c
 Converts the basis of a number

Given a non-negative integer N, and a vector of vectors VecOfVecs, returns a vector of size size<VecOfVecs>, such that the i-th element of the returned vector is the j-th element of the i-th vector in VecOfVecs, where the j-s comprise the representation of N as a number in which each digit has a different base - the size of the corresponding vector in VecOfVecs. More...

struct  deref< cross_iterator< VecOfVecs, TypeGen, K > >
 Dereferences a cross-vector iterator

Creates a vector of the sizes of each type vector in VecOfVecs, then uses it as a basis to represent the iterator's position K as a vector of indices. Extracts the corresponding type of each input vector and passes the element types to the type generation function, which returns the dereferenced type. More...

struct  next< cross_iterator< VecOfVecs, TypeGen, K > >
 Increments a cross-vector iterator. More...
struct  prior< cross_iterator< VecOfVecs, TypeGen, K > >
 Decrements a cross-vector iterator. More...
struct  advance< cross_iterator< VecOfVecs, TypeGen, K >, Distance >
 Advances a cross-vector iterator. More...
struct  distance< cross_iterator< VecOfVecs, TypeGen, K1 >, cross_iterator< VecOfVecs, TypeGen, K2 > >
 Computes the distance between two cross-vector iterator-s. More...
struct  size< cross_vector< VecOfVecs, TypeGen > >
 Computes the size of a cross vector as the product of the sizes of all vectors in VecOfVecs. More...
struct  empty< cross_vector< VecOfVecs, TypeGen > >
 Determines whether a cross vector is empty. More...
struct  at< cross_vector< VecOfVecs, TypeGen >, K >
 Returns the K-th element of a cross vector. More...
struct  begin< cross_vector< VecOfVecs, TypeGen > >
 Returns an iterator to the first element of a cross vector. More...
struct  end< cross_vector< VecOfVecs, TypeGen > >
 Returns an iterator to the last element of a cross vector. More...
struct  front< cross_vector< VecOfVecs, TypeGen > >
 Returns the first element of a cross vector. More...
struct  back< cross_vector< VecOfVecs, TypeGen > >
 Returns the last element of a cross vector. More...
struct  transform< cross_vector< VecOfVecs, TypeGen >, OPP >
 Transforms the elements of a cross vector. More...
struct  concat_vector
 Represents the virtual concatenation of two MPL random access sequences

INPUT: Vec1, Vec2 - two MPL random access sequences. More...

struct  concat_vector_iterator
 Iterator of cross_vector. More...
struct  deref< concat_vector_iterator< Vec1, Vec2, K > >
 Dereferences a concat-vector iterator. More...
struct  next< concat_vector_iterator< Vec1, Vec2, K > >
 Increments a concat-vector iterator. More...
struct  prior< concat_vector_iterator< Vec1, Vec2, K > >
 Decrements a concat-vector iterator. More...
struct  advance< concat_vector_iterator< Vec1, Vec2, K >, Distance >
 Advances a concat-vector iterator. More...
struct  distance< concat_vector_iterator< Vec1, Vec2, K1 >, concat_vector_iterator< Vec1, Vec2, K2 > >
 Computes the distance between two concat-vector iterators. More...
struct  size< concat_vector< Vec1, Vec2 > >
 Computes the size of a concat vector as the sum of the sizes of its input vectors. More...
struct  empty< concat_vector< Vec1, Vec2 > >
 Determines whether a concat vector is empty. More...
struct  at< concat_vector< Vec1, Vec2 >, K >
 Returns the K-th element of a concat vector. More...
struct  begin< concat_vector< Vec1, Vec2 > >
 Returns an iterator to the first element of a concat vector. More...
struct  end< concat_vector< Vec1, Vec2 > >
 Returns an iterator to the last element of a concat vector. More...
struct  front< concat_vector< Vec1, Vec2 > >
 Returns the first element of a concat vector. More...
struct  back< concat_vector< Vec1, Vec2 > >
 Returns the last element of a concat vector. More...
struct  transform< concat_vector< Vec1, Vec2 >, Op >
 Transforms the elements of a concat vector. More...
struct  mapping_vector
struct  type_to_index
 Returns the index corresponding to a given type (or size if the type is not present). More...

Copyright © 2006 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google