PPL  1.2
meta_programming.hh File Reference
#include <gmpxx.h>
Include dependency graph for meta_programming.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Parma_Polyhedra_Library::Compile_Time_Check< b >
 A class that is only defined if b evaluates to true. More...
 
struct  Parma_Polyhedra_Library::Compile_Time_Check< true >
 A class that is only defined if b evaluates to true. More...
 
struct  Parma_Polyhedra_Library::Bool< b >
 A class holding a constant called value that evaluates to b. More...
 
struct  Parma_Polyhedra_Library::True
 A class holding a constant called value that evaluates to true. More...
 
struct  Parma_Polyhedra_Library::False
 A class holding a constant called value that evaluates to false. More...
 
struct  Parma_Polyhedra_Library::Is_Same< T1, T2 >
 A class holding a constant called value that evaluates to true if and only if T1 is the same type as T2. More...
 
struct  Parma_Polyhedra_Library::Is_Same< T, T >
 A class holding a constant called value that evaluates to true if and only if T1 is the same type as T2. More...
 
struct  Parma_Polyhedra_Library::Is_Same_Or_Derived< Base, Derived >
 A class holding a constant called value that evaluates to true if and only if Base is the same type as Derived or Derived is a class derived from Base. More...
 
struct  Parma_Polyhedra_Library::Is_Same_Or_Derived< Base, Derived >::Any
 A class that is constructible from just anything. More...
 
struct  Parma_Polyhedra_Library::Enable_If< b, T >
 A class that provides a type member called type equivalent to T if and only if b is true. More...
 
struct  Parma_Polyhedra_Library::Enable_If_Is< Type, Type, T >
 
struct  Parma_Polyhedra_Library::Enable_If< true, T >
 A class that provides a type member called type equivalent to T if and only if b is true. More...
 
struct  Parma_Polyhedra_Library::Is_Native< T >
 
struct  Parma_Polyhedra_Library::Is_Native< char >
 
struct  Parma_Polyhedra_Library::Is_Native< signed char >
 
struct  Parma_Polyhedra_Library::Is_Native< signed short >
 
struct  Parma_Polyhedra_Library::Is_Native< signed int >
 
struct  Parma_Polyhedra_Library::Is_Native< signed long >
 
struct  Parma_Polyhedra_Library::Is_Native< signed long long >
 
struct  Parma_Polyhedra_Library::Is_Native< unsigned char >
 
struct  Parma_Polyhedra_Library::Is_Native< unsigned short >
 
struct  Parma_Polyhedra_Library::Is_Native< unsigned int >
 
struct  Parma_Polyhedra_Library::Is_Native< unsigned long >
 
struct  Parma_Polyhedra_Library::Is_Native< unsigned long long >
 
struct  Parma_Polyhedra_Library::Is_Native< mpz_class >
 
struct  Parma_Polyhedra_Library::Is_Native< mpq_class >
 

Namespaces

 Parma_Polyhedra_Library
 The entire library is confined to this namespace.
 

Macros

#define const_bool_nodef(name, value)    enum const_bool_value_ ## name { PPL_U(name) = (value) }
 Declares a per-class constant of type bool, called name and with value value. More...
 
#define const_int_nodef(name, value)   enum anonymous_enum_ ## name { PPL_U(name) = (value) }
 Declares a per-class constant of type int, called name and with value value. More...
 
#define const_value_nodef(type, name, value)
 Declares a per-class constant of type type, called name and with value value. The value of the constant is accessible by means of the syntax name(). More...
 
#define const_ref_nodef(type, name, value)
 Declares a per-class constant of type type, called name and with value value. A constant reference to the constant is accessible by means of the syntax name(). More...
 
#define PPL_COMPILE_TIME_CHECK_NAME(suffix)   compile_time_check_ ## suffix
 
#define PPL_COMPILE_TIME_CHECK_AUX(e, suffix)
 
#define PPL_COMPILE_TIME_CHECK(e, msg)   PPL_COMPILE_TIME_CHECK_AUX(e, __LINE__)
 Produces a compilation error if the compile-time constant e does not evaluate to true More...
 

Macro Definition Documentation

#define PPL_COMPILE_TIME_CHECK_AUX (   e,
  suffix 
)
Value:
enum anonymous_enum_compile_time_check_ ## suffix { \
/* If e evaluates to false, then the sizeof cannot be compiled. */ \
PPL_COMPILE_TIME_CHECK_NAME(suffix) \
}
A class that is only defined if b evaluates to true.

Definition at line 119 of file meta_programming.hh.

#define PPL_COMPILE_TIME_CHECK_NAME (   suffix)    compile_time_check_ ## suffix

Definition at line 118 of file meta_programming.hh.