aGrUM  0.16.0
templateStrategy.h
Go to the documentation of this file.
1 
30 #ifndef GUM_TEMPLATE_STRATEGY_H
31 #define GUM_TEMPLATE_STRATEGY_H
32 
33 namespace gum {
34 
35  template < int v >
36  struct Int2Type {
37  enum { value = v };
38  };
39 
40  enum TESTNAME { GTEST = 1, CHI2TEST = 2, LEASTSQUARETEST = 3 };
41  template < TESTNAME, class A, class B, class C >
42  struct TestSelect {
43  typedef A type;
44  };
45  template < class A, class B, class C >
46  struct TestSelect< CHI2TEST, A, B, C > {
47  typedef B type;
48  };
49  template < class A, class B, class C >
50  struct TestSelect< LEASTSQUARETEST, A, B, C > {
51  typedef C type;
52  };
53 
54  template < bool, class A, class B >
55  struct ValueSelect {
56  typedef A type;
57  };
58  template < class A, class B >
59  struct ValueSelect< false, A, B > {
60  typedef B type;
61  };
62 
63  enum LEARNERNAME { IMDDILEARNER = 1, ITILEARNER = 2 };
64  template < LEARNERNAME, class A, class B >
65  struct LearnerSelect {
66  typedef A type;
67  };
68  template < class A, class B >
69  struct LearnerSelect< ITILEARNER, A, B > {
70  typedef B type;
71  };
72 
73 } // end of namespace gum
74 
75 #endif // GUM_TEMPLATE_STRATEGY_H
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25