aGrUM
0.14.2
templateStrategy.h
Go to the documentation of this file.
1
/***************************************************************************
2
* Copyright (C) 2005 by Christophe GONZALES and Pierre-Henri WUILLEMIN *
3
* {prenom.nom}_at_lip6.fr *
4
* *
5
* This program is free software; you can redistribute it and/or modify *
6
* it under the terms of the GNU General Public License as published by *
7
* the Free Software Foundation; either version 2 of the License, or *
8
* (at your option) any later version. *
9
* *
10
* This program is distributed in the hope that it will be useful, *
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13
* GNU General Public License for more details. *
14
* *
15
* You should have received a copy of the GNU General Public License *
16
* along with this program; if not, write to the *
17
* Free Software Foundation, Inc., *
18
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19
***************************************************************************/
27
#ifndef GUM_TEMPLATE_STRATEGY_H
28
#define GUM_TEMPLATE_STRATEGY_H
29
30
namespace
gum
{
31
32
template
<
int
v >
33
struct
Int2Type
{
34
enum
{
value
= v };
35
};
36
37
enum
TESTNAME
{
GTEST
= 1,
CHI2TEST
= 2,
LEASTSQUARETEST
= 3 };
38
template
< TESTNAME,
class
A,
class
B,
class
C >
39
struct
TestSelect
{
40
typedef
A
type
;
41
};
42
template
<
class
A,
class
B,
class
C >
43
struct
TestSelect
<
CHI2TEST
, A, B, C > {
44
typedef
B
type
;
45
};
46
template
<
class
A,
class
B,
class
C >
47
struct
TestSelect
<
LEASTSQUARETEST
, A, B, C > {
48
typedef
C
type
;
49
};
50
51
template
<
bool
,
class
A,
class
B >
52
struct
ValueSelect
{
53
typedef
A
type
;
54
};
55
template
<
class
A,
class
B >
56
struct
ValueSelect
< false, A, B > {
57
typedef
B
type
;
58
};
59
60
enum
LEARNERNAME
{
IMDDILEARNER
= 1,
ITILEARNER
= 2 };
61
template
< LEARNERNAME,
class
A,
class
B >
62
struct
LearnerSelect
{
63
typedef
A
type
;
64
};
65
template
<
class
A,
class
B >
66
struct
LearnerSelect
<
ITILEARNER
, A, B > {
67
typedef
B
type
;
68
};
69
70
}
// end of namespace gum
71
72
#endif // GUM_TEMPLATE_STRATEGY_H
gum::Int2Type::value
Definition:
templateStrategy.h:34
gum::GTEST
Definition:
templateStrategy.h:37
gum::LearnerSelect
Definition:
templateStrategy.h:62
gum::LEASTSQUARETEST
Definition:
templateStrategy.h:37
gum::LearnerSelect::type
A type
Definition:
templateStrategy.h:63
gum
gum is the global namespace for all aGrUM entities
Definition:
agrum.h:25
gum::TestSelect::type
A type
Definition:
templateStrategy.h:40
gum::LEARNERNAME
LEARNERNAME
Definition:
templateStrategy.h:60
gum::TESTNAME
TESTNAME
Definition:
templateStrategy.h:37
gum::Int2Type
Definition:
templateStrategy.h:33
gum::ValueSelect::type
A type
Definition:
templateStrategy.h:53
gum::TestSelect< LEASTSQUARETEST, A, B, C >::type
C type
Definition:
templateStrategy.h:48
gum::TestSelect
Definition:
templateStrategy.h:39
gum::CHI2TEST
Definition:
templateStrategy.h:37
gum::LearnerSelect< ITILEARNER, A, B >::type
B type
Definition:
templateStrategy.h:67
gum::ValueSelect
Definition:
templateStrategy.h:52
gum::IMDDILEARNER
Definition:
templateStrategy.h:60
gum::ValueSelect< false, A, B >::type
B type
Definition:
templateStrategy.h:57
gum::ITILEARNER
Definition:
templateStrategy.h:60
gum::TestSelect< CHI2TEST, A, B, C >::type
B type
Definition:
templateStrategy.h:44