StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
is_arithmetic.h
1 #ifndef IS_ARITHMETIC
2 #define IS_ARITHMETIC
3 // author: Walter Brown
4 
5 // ----------------------------------------------------------------------
6 // prolog
7 
8 namespace HepMC {
9 
14 namespace detail {
15 
16 
17 // ----------------------------------------------------------------------
18 // is_arithmetic<>
19 
21 template< class T >
23 {
24  static bool const value = false;
25 };
26 
28 template<>
29  struct is_arithmetic<char>
30 { static bool const value = true; };
31 
33 template<>
34  struct is_arithmetic<unsigned char>
35 { static bool const value = true; };
36 
38 template<>
39  struct is_arithmetic<signed char>
40 { static bool const value = true; };
41 
43 template<>
44  struct is_arithmetic<short>
45 { static bool const value = true; };
46 
48 template<>
49  struct is_arithmetic<unsigned short>
50 { static bool const value = true; };
51 
53 template<>
54  struct is_arithmetic<int>
55 { static bool const value = true; };
56 
58 template<>
59  struct is_arithmetic<unsigned int>
60 { static bool const value = true; };
61 
63 template<>
64  struct is_arithmetic<long>
65 { static bool const value = true; };
66 
68 template<>
69  struct is_arithmetic<unsigned long>
70 { static bool const value = true; };
71 
73 template<>
74  struct is_arithmetic<float>
75 { static bool const value = true; };
76 
78 template<>
79  struct is_arithmetic<double>
80 { static bool const value = true; };
81 
83 template<>
84  struct is_arithmetic<long double>
85 { static bool const value = true; };
86 
87 
88 // ----------------------------------------------------------------------
89 // epilog
90 
91 } // namespace detail
92 } // namespace HepMC
93 
94 #endif // IS_ARITHMETIC
undefined and therefore non-arithmetic
Definition: is_arithmetic.h:22