traits.h
Go to the documentation of this file.
1 #ifndef TRAITS_H_62B23520_7C8E_11DE_8A39_0800200C9A66_PM
2 #define TRAITS_H_62B23520_7C8E_11DE_8A39_0800200C9A66_PM
3 
4 #if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
5 #pragma once
6 #endif
7 
8 
9 namespace YAML_PM
10 {
11  template <typename>
12  struct is_numeric { enum { value = false }; };
13 
14  template <> struct is_numeric <char> { enum { value = true }; };
15  template <> struct is_numeric <unsigned char> { enum { value = true }; };
16  template <> struct is_numeric <int> { enum { value = true }; };
17  template <> struct is_numeric <unsigned int> { enum { value = true }; };
18  template <> struct is_numeric <long int> { enum { value = true }; };
19  template <> struct is_numeric <unsigned long int> { enum { value = true }; };
20  template <> struct is_numeric <short int> { enum { value = true }; };
21  template <> struct is_numeric <unsigned short int> { enum { value = true }; };
22 #if defined(_MSC_VER) && (_MSC_VER < 1310)
23  template <> struct is_numeric <__int64> { enum { value = true }; };
24  template <> struct is_numeric <unsigned __int64> { enum { value = true }; };
25 #else
26  template <> struct is_numeric <long long> { enum { value = true }; };
27  template <> struct is_numeric <unsigned long long> { enum { value = true }; };
28 #endif
29  template <> struct is_numeric <float> { enum { value = true }; };
30  template <> struct is_numeric <double> { enum { value = true }; };
31  template <> struct is_numeric <long double> { enum { value = true }; };
32 
33  template <bool, class T = void>
34  struct enable_if_c {
35  typedef T type;
36  };
37 
38  template <class T>
39  struct enable_if_c<false, T> {};
40 
41  template <class Cond, class T = void>
42  struct enable_if : public enable_if_c<Cond::value, T> {};
43 
44  template <bool, class T = void>
45  struct disable_if_c {
46  typedef T type;
47  };
48 
49  template <class T>
50  struct disable_if_c<true, T> {};
51 
52  template <class Cond, class T = void>
53  struct disable_if : public disable_if_c<Cond::value, T> {};
54 }
55 
56 #endif // TRAITS_H_62B23520_7C8E_11DE_8A39_0800200C9A66_PM
57 
YAML_PM
Definition: aliasmanager.h:11
YAML_PM::enable_if_c::type
T type
Definition: traits.h:35
YAML_PM::disable_if_c::type
T type
Definition: traits.h:46
YAML_PM::disable_if
Definition: traits.h:53
YAML_PM::is_numeric
Definition: traits.h:12
YAML_PM::is_numeric::value
@ value
Definition: traits.h:12
YAML_PM::disable_if_c
Definition: traits.h:45
YAML_PM::enable_if_c
Definition: traits.h:34
YAML_PM::enable_if
Definition: traits.h:42


mp2p_icp
Author(s):
autogenerated on Fri Dec 20 2024 03:46:00