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...
#include <meta_programming.hh>
|
struct | Any |
| A class that is constructible from just anything. More...
|
|
|
| PPL_COMPILE_TIME_CHECK (sizeof(char)!=sizeof(double),"architecture with sizeof(char) == sizeof(double)"" (!?)") |
|
template<typename Base, typename Derived>
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
.
- Note
- Care must be taken to use this predicate with template classes. Suppose we have
template <typename T> struct B;
template <typename T> struct D : public B<T>;
Of course, we cannot test if, for some type variable U
, we have Is_Same_Or_Derived<B<U>, Type>:: const_bool_value:: value == true
. But we can do as follows: struct B_Base {
};
template <typename T> struct B : public B_Base;
This enables us to inquire Is_Same_Or_Derived<B_Base, Type>:: const_bool_value:: value
.
Definition at line 223 of file meta_programming.hh.
template<typename Base, typename Derived>
A function obtaining a const reference to a Derived
object.
template<typename Base, typename Derived>
template<typename Base, typename Derived>
template<typename Base, typename Derived>
The documentation for this struct was generated from the following file: