C++QEDCore  v2 Milestone 10
a framework for simulating open quantum dynamics – core
TMP_Tools.h File Reference

Template metaprogramming tools, extending (and based on) Boost.MPL. More...

#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/remove_reference.hpp>
#include <boost/type_traits/remove_const.hpp>
#include <boost/mpl/range_c.hpp>
#include <boost/mpl/vector_c.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/eval_if.hpp>
#include <boost/mpl/identity.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/find_if.hpp>
#include <boost/mpl/equal.hpp>
+ Include dependency graph for TMP_Tools.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tmptools::RemoveConstReference< T >
 Combines remove_const and remove_reference More...
 
struct  tmptools::ConditionalAddConst< T, ADD_CONST >
 Applies add_const if ADD_CONST = true. More...
 
struct  tmptools::Range< N, Nbeg >
 An integer range_c starting with Nbeg and having N elements (Nbeg ... Nbeg+N-1) More...
 
struct  tmptools::Ordinals< N >
 Sequence of ordinals 0 ... N-1 based on Range. More...
 
struct  tmptools::Power< N1, N2 >
 Calculates the power $N_1^{N_2}$ @ compile time. More...
 
struct  tmptools::numerical_contains< Seq, ICW >
 Determines whether a compile-time sequence “numerically contains” a given value. More...
 
struct  tmptools::numerical_contains_c< Seq, T, VALUE >
 The _c version of numerical_contains, which expects a value instead of an integral constant wrapper. More...
 
struct  tmptools::numerical_equal< Seq1, Seq2 >
 Determines the numerical equality of two compile-time sequences. More...
 
struct  tmptools::AssertEvenAndDivideBy2< N >
 Provokes a compile-time error if N is not even, otherwise acts as a Boost.MPL int_ integral constant wrapper of N/2 More...
 
struct  tmptools::pair_c< N1, N2, IS_EXCLUSIVE >
 A compile-time pair of integers. More...
 
struct  tmptools::pair_c< N1, N2, false >
 A non-exclusive pair_c that allows the members to be equal. More...
 
struct  tmptools::pair_c< N1, N2, true >
 An exclusive pair_c that provokes a compile-time error if the members are equal. More...
 
struct  tmptools::Vector< V >
 A non-negative compile-time vector. More...
 

Namespaces

 tmptools
 Template metaprogramming tools.
 

Macros

#define BLITZ_ARRAY_LARGEST_RANK   11
 The largest-rank blitz::Array for which the mixed-mode subscripting can be used. More...
 
#define FUSION_MAX_VECTOR_SIZE   20
 Cf. this page
 
#define FUSION_MAX_LIST_SIZE   FUSION_MAX_VECTOR_SIZE
 Cf. this page
 
#define DEFINE_TYPED_STATIC_CONST(typeDescription, typeName, variableName)   typedef typeDescription typeName; static const typeName variableName;
 
#define DEFINE_INITIALIZE_TYPED_STATIC_CONST(typeDescription, typeName, variableName)   typedef typeDescription typeName; static const typeName variableName=typeName();
 

Typedefs

typedef Vector tmptools::V_Empty
 

Detailed Description

Template metaprogramming tools, extending (and based on) Boost.MPL.

Definition in file TMP_Tools.h.

Macro Definition Documentation

#define BLITZ_ARRAY_LARGEST_RANK   11

The largest-rank blitz::Array for which the mixed-mode subscripting can be used.

A value larger than 11 will work only if our own Blitz++ version is used, where the indexing member functions and constructors are generated through preprocessor metaprogramming.

For our version of Blitz++, cf. http://sourceforge.net/p/cppqed/blitz/ci/default/tree/

Definition at line 16 of file TMP_Tools.h.