51#ifndef OPENMESH_GENPROG_HH
52#define OPENMESH_GENPROG_HH
57#include <OpenMesh/Core/System/config.h>
65#ifndef DOXY_IGNORE_THIS
71template <
bool b>
struct Bool2Type {
enum { my_bool = b }; };
74template <
int i>
struct Int2Type {
enum { my_int = i }; };
77typedef Bool2Type<true> TrueType;
80typedef Bool2Type<false> FalseType;
84template <
bool Expr>
struct AssertCompile;
85template <>
struct AssertCompile<true> {};
90#if OM_PARTIAL_SPECIALIZATION
93template <
bool condition,
class Then,
class Else>
94struct IF {
typedef Then Result; };
101template <
class Then,
class Else>
102struct IF<false, Then, Else> {
typedef Else Result; };
114 template <
class Then,
class Else>
struct Select {
121 template <
class Then,
class Else>
struct Select {
126template <
bool condition>
struct ChooseSelector {
127 typedef SelectThen Result;
130template <>
struct ChooseSelector<false> {
131 typedef SelectElse Result;
141template <
bool condition,
class Then,
class Else>
144 typedef typename ChooseSelector<condition>::Result Selector;
146 typedef typename Selector::template Select<Then, Else>::Result Result;
156#define assert_compile(EXPR) GenProg::AssertCompile<(EXPR)>();
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition: MeshItems.hh:59