File indexing completed on 2024-04-06 11:56:19
0001 #ifndef GENERS_IOISNUMBER_HH_
0002 #define GENERS_IOISNUMBER_HH_
0003
0004 namespace gs {
0005 template <class T>
0006 struct IOIsNumber {
0007 enum { value = 0 };
0008 };
0009 }
0010
0011 #define gs_declare_type_as_number(T) \
0012 namespace gs { \
0013 template <> \
0014 struct IOIsNumber<T> { \
0015 enum { value = 1 }; \
0016 }; \
0017 template <> \
0018 struct IOIsNumber<T const> { \
0019 enum { value = 1 }; \
0020 }; \
0021 template <> \
0022 struct IOIsNumber<T volatile> { \
0023 enum { value = 1 }; \
0024 }; \
0025 template <> \
0026 struct IOIsNumber<T const volatile> { \
0027 enum { value = 1 }; \
0028 }; \
0029 }
0030
0031 gs_declare_type_as_number(float) gs_declare_type_as_number(double) gs_declare_type_as_number(long double)
0032 gs_declare_type_as_number(int) gs_declare_type_as_number(unsigned) gs_declare_type_as_number(long)
0033 gs_declare_type_as_number(long long) gs_declare_type_as_number(unsigned long)
0034 gs_declare_type_as_number(unsigned long long) gs_declare_type_as_number(short)
0035 gs_declare_type_as_number(unsigned short) gs_declare_type_as_number(char)
0036 gs_declare_type_as_number(unsigned char) gs_declare_type_as_number(signed char)
0037
0038 #endif