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>
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 @ 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 |
Template metaprogramming tools, extending (and based on) Boost.MPL.
Definition in file TMP_Tools.h.
#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.