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