StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
enable_if.h
1 #ifndef ENABLE_IF_H
2 #define ENABLE_IF_H
3 // author: Walter Brown
4 
5 // ----------------------------------------------------------------------
6 // prolog
7 
8 namespace HepMC {
9 namespace detail {
10 
11 
12 // ----------------------------------------------------------------------
13 // enable_if<>
14 
16 template< bool, class >
17 struct enable_if
18 { };
19 
21 template< class T >
22 struct enable_if<true, T>
23 {
24  typedef T type;
25 };
26 
27 
28 // ----------------------------------------------------------------------
29 // disable_if<>
30 
32 template< bool, class >
33 struct disable_if
34 { };
35 
37 template< class T >
38 struct disable_if<false, T>
39 {
40  typedef T type;
41 };
42 
43 
44 // ----------------------------------------------------------------------
45 // epilog
46 
47 } // namespace detail
48 } // namespace HepMC
49 
50 #endif // ENABLE_IF_H
internal - used to decide if a class is arithmetic
Definition: enable_if.h:17
T type
check type of class T
Definition: enable_if.h:40
T type
check type of class T
Definition: enable_if.h:24
internal - used by SimpleVector to decide if a class is arithmetic
Definition: enable_if.h:33