10#define SCHAR_MIN (-0x7F - 1)
15#define CHAR_MAX SCHAR_MAX
17#define SHRT_MIN (-0x7FFF - 1)
18#define SHRT_MAX 0x7FFF
19#define USHRT_MAX 0xFFFF
21#define INT_MIN (-0x7FFFFFFF - 1)
22#define INT_MAX 0x7FFFFFFF
23#define UINT_MAX 0xFFFFFFFF
25#define LONG_MIN (-0x7FFFFFFFL - 1)
26#define LONG_MAX 0x7FFFFFFFL
27#define ULONG_MAX 0xFFFFFFFFUL
29#define LLONG_MIN (-0x7FFFFFFFFFFFFFFFLL - 1)
30#define LLONG_MAX 0x7FFFFFFFFFFFFFFFLL
31#define ULLONG_MAX 0xFFFFFFFFFFFFFFFFULL
37 template <
typename T>
class numeric_limits {
39 inline static T min();
40 inline static T max();
43 template <>
class numeric_limits<char> {
45 inline static char min()
49 inline static char max()
55 template <>
class numeric_limits<short> {
57 inline static short min()
61 inline static short max()
67 template <>
class numeric_limits<int> {
69 inline static int min()
73 inline static int max()
79 template <>
class numeric_limits<long> {
81 inline static long min()
85 inline static long max()
91 template <>
class numeric_limits<unsigned char> {
93 inline static unsigned char min()
97 inline static unsigned char max()
103 template <>
class numeric_limits<unsigned short> {
105 inline static unsigned short min()
109 inline static unsigned short max()
115 template <>
class numeric_limits<unsigned int> {
117 inline static unsigned int min()
121 inline static unsigned int max()
127 template <>
class numeric_limits<unsigned long> {
129 inline static unsigned long min()
133 inline static unsigned long max()