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...
#include <meta_programming.hh>
Public Types | |
enum | { value = (sizeof(func(derived_object())) == sizeof(char)) } |
Public Member Functions | |
COMPILE_TIME_CHECK (sizeof(char)!=sizeof(double),"architecture with sizeof(char) == sizeof(double) (!?)") | |
Static Public Member Functions | |
static char | func (const Base &) |
Overloading with Base . | |
static double | func (Any) |
Overloading with Any . | |
static const Derived & | derived_object () |
A function obtaining a const reference to a Derived object. | |
Classes | |
struct | Any |
A class that is constructible from just anything. More... |
value
that evaluates to true
if and only if Base
is the same type as Derived
or Derived
is a class derived from Base
.
template <typename T> struct B; template <typename T> struct D : public B<T>;
U
, we have Is_Same_Or_Derived<B<U>, Type>value == true
. But we can do as follows: struct B_Base { }; template <typename T> struct B : public B_Base;
Is_Same_Or_Derived<B_Base, Type>::value
. Definition at line 223 of file meta_programming.hh.
anonymous enum |
Definition at line 246 of file meta_programming.hh.
00246 { 00253 value = (sizeof(func(derived_object())) == sizeof(char)) 00254 };
static char Parma_Polyhedra_Library::Is_Same_Or_Derived< Base, Derived >::func | ( | const Base & | ) | [static] |
Overloading with Base
.
static double Parma_Polyhedra_Library::Is_Same_Or_Derived< Base, Derived >::func | ( | Any | ) | [static] |
Overloading with Any
.
static const Derived& Parma_Polyhedra_Library::Is_Same_Or_Derived< Base, Derived >::derived_object | ( | ) | [static] |
A function obtaining a const reference to a Derived
object.
Parma_Polyhedra_Library::Is_Same_Or_Derived< Base, Derived >::COMPILE_TIME_CHECK | ( | sizeof(char)! | = sizeof(double) |
) |