ReactOS 0.4.15-dev-8145-ga541a46
_limits.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 1997
3 * Silicon Graphics Computer Systems, Inc.
4 *
5 * Copyright (c) 1999
6 * Boris Fomitchev
7 *
8 * This material is provided "as is", with absolutely no warranty expressed
9 * or implied. Any use is at your own risk.
10 *
11 * Permission to use or copy this software for any purpose is hereby granted
12 * without fee, provided the above notices are retained on all copies.
13 * Permission to modify the code and to distribute modified code is granted,
14 * provided the above notices are retained, and a notice that the code was
15 * modified is included with the above copyright notice.
16 *
17 */
18
19/* NOTE: This may be not portable code. Parts of numeric_limits<> are
20 * inherently machine-dependent. At present this file is suitable
21 * for the MIPS, SPARC, Alpha and ia32 architectures.
22 */
23
24#ifndef _STLP_INTERNAL_LIMITS
25#define _STLP_INTERNAL_LIMITS
26
27#ifndef _STLP_CLIMITS
28# include <climits>
29#endif
30
31#ifndef _STLP_CFLOAT
32# include <cfloat>
33#endif
34
35#if defined (_STLP_HAS_WCHAR_T) && !defined (_STLP_INTERNAL_CWCHAR)
36# include <stl/_cwchar.h>
37#endif
38
40
47};
48
53};
54
55#ifdef min
56# undef min
57#endif
58#ifdef max
59# undef max
60#endif
61
63
64// Base class for all specializations of numeric_limits.
65template <class __number>
67public:
68
69 static __number _STLP_CALL min() _STLP_NOTHROW { return __number(); }
70 static __number _STLP_CALL max() _STLP_NOTHROW { return __number(); }
71
73 _STLP_STATIC_CONSTANT(int, digits10 = 0);
74 _STLP_STATIC_CONSTANT(int, radix = 0);
75 _STLP_STATIC_CONSTANT(int, min_exponent = 0);
76 _STLP_STATIC_CONSTANT(int, min_exponent10 = 0);
77 _STLP_STATIC_CONSTANT(int, max_exponent = 0);
78 _STLP_STATIC_CONSTANT(int, max_exponent10 = 0);
79
82
83 _STLP_STATIC_CONSTANT(bool, is_specialized = false);
84 _STLP_STATIC_CONSTANT(bool, is_signed = false);
86 _STLP_STATIC_CONSTANT(bool, is_exact = false);
87 _STLP_STATIC_CONSTANT(bool, has_infinity = false);
88 _STLP_STATIC_CONSTANT(bool, has_quiet_NaN = false);
89 _STLP_STATIC_CONSTANT(bool, has_signaling_NaN = false);
90 _STLP_STATIC_CONSTANT(bool, has_denorm_loss = false);
91 _STLP_STATIC_CONSTANT(bool, is_iec559 = false);
92 _STLP_STATIC_CONSTANT(bool, is_bounded = false);
93 _STLP_STATIC_CONSTANT(bool, is_modulo = false);
94 _STLP_STATIC_CONSTANT(bool, traps = false);
95 _STLP_STATIC_CONSTANT(bool, tinyness_before = false);
96
97 static __number _STLP_CALL epsilon() _STLP_NOTHROW { return __number(); }
98 static __number _STLP_CALL round_error() _STLP_NOTHROW { return __number(); }
99
100 static __number _STLP_CALL infinity() _STLP_NOTHROW { return __number(); }
101 static __number _STLP_CALL quiet_NaN() _STLP_NOTHROW { return __number(); }
102 static __number _STLP_CALL signaling_NaN() _STLP_NOTHROW { return __number(); }
103 static __number _STLP_CALL denorm_min() _STLP_NOTHROW { return __number(); }
104};
105
106// Base class for integers.
107
108#ifdef _STLP_LIMITED_DEFAULT_TEMPLATES
109# ifdef _STLP_LONG_LONG
110# define _STLP_LIMITS_MIN_TYPE _STLP_LONG_LONG
111# define _STLP_LIMITS_MAX_TYPE unsigned _STLP_LONG_LONG
112# else
113# define _STLP_LIMITS_MIN_TYPE long
114# define _STLP_LIMITS_MAX_TYPE unsigned long
115# endif
116#else
117# define _STLP_LIMITS_MIN_TYPE _Int
118# define _STLP_LIMITS_MAX_TYPE _Int
119#endif /* _STLP_LIMITED_DEFAULT_TEMPLATES */
120
121template <class _Int,
124 int __idigits, bool __ismod>
126public:
127
128 static _Int _STLP_CALL min () _STLP_NOTHROW { return (_Int)__imin; }
129 static _Int _STLP_CALL max () _STLP_NOTHROW { return (_Int)__imax; }
130
131 _STLP_STATIC_CONSTANT(int, digits = (__idigits < 0) ? ((int)((sizeof(_Int) * (CHAR_BIT))) - ((__imin == 0) ? 0 : 1)) : (__idigits));
132 _STLP_STATIC_CONSTANT(int, digits10 = (digits * 301UL) / 1000);
133 _STLP_STATIC_CONSTANT(int, radix = 2);
134 _STLP_STATIC_CONSTANT(bool, is_specialized = true);
135 _STLP_STATIC_CONSTANT(bool, is_signed = (__imin != 0));
137 _STLP_STATIC_CONSTANT(bool, is_exact = true);
138 _STLP_STATIC_CONSTANT(bool, is_bounded = true);
139 _STLP_STATIC_CONSTANT(bool, is_modulo = __ismod);
140};
141
142// Base class for floating-point numbers.
143template <class __number,
144 int __Digits, int __Digits10,
145 int __MinExp, int __MaxExp,
146 int __MinExp10, int __MaxExp10,
147 bool __IsIEC559,
148 float_denorm_style __DenormStyle,
149 float_round_style __RoundStyle>
150class _Floating_limits : public _Numeric_limits_base<__number> {
151public:
152
154 _STLP_STATIC_CONSTANT(int, digits10 = __Digits10);
156 _STLP_STATIC_CONSTANT(int, min_exponent = __MinExp);
157 _STLP_STATIC_CONSTANT(int, max_exponent = __MaxExp);
158 _STLP_STATIC_CONSTANT(int, min_exponent10 = __MinExp10);
159 _STLP_STATIC_CONSTANT(int, max_exponent10 = __MaxExp10);
160
161 _STLP_STATIC_CONSTANT(float_denorm_style, has_denorm = __DenormStyle);
162 _STLP_STATIC_CONSTANT(float_round_style, round_style = __RoundStyle);
163
164 _STLP_STATIC_CONSTANT(bool, is_specialized = true);
165 _STLP_STATIC_CONSTANT(bool, is_signed = true);
166
167 _STLP_STATIC_CONSTANT(bool, has_infinity = true);
168#if (!defined (_STLP_MSVC) || (_STLP_MSVC > 1300)) && \
169 (!defined (__BORLANDC__) || (__BORLANDC__ >= 0x590)) && \
170 (!defined (_CRAY) || defined (_CRAYIEEE))
171 _STLP_STATIC_CONSTANT(bool, has_quiet_NaN = true);
172 _STLP_STATIC_CONSTANT(bool, has_signaling_NaN = true);
173#else
174 _STLP_STATIC_CONSTANT(bool, has_quiet_NaN = false);
175 _STLP_STATIC_CONSTANT(bool, has_signaling_NaN = false);
176#endif
177
178 _STLP_STATIC_CONSTANT(bool, is_iec559 = __IsIEC559 && has_infinity && has_quiet_NaN && has_signaling_NaN && (has_denorm == denorm_present));
179 _STLP_STATIC_CONSTANT(bool, has_denorm_loss = false);
180 _STLP_STATIC_CONSTANT(bool, is_bounded = true);
181 _STLP_STATIC_CONSTANT(bool, traps = true);
182 _STLP_STATIC_CONSTANT(bool, tinyness_before = false);
183};
184
186
187// Class numeric_limits
188
189// The unspecialized class.
190
191template<class _Tp>
193
194// Specializations for all built-in integral types.
195
196#if !defined (_STLP_NO_BOOL)
199 : public _STLP_PRIV _Integer_limits<bool, false, true, 1, false>
200{};
201#endif /* _STLP_NO_BOOL */
202
205 : public _STLP_PRIV _Integer_limits<char, CHAR_MIN, CHAR_MAX, -1, true>
206{};
207
208#if !defined (_STLP_NO_SIGNED_BUILTINS)
211 : public _STLP_PRIV _Integer_limits<signed char, SCHAR_MIN, SCHAR_MAX, -1, true>
212{};
213#endif
214
217 : public _STLP_PRIV _Integer_limits<unsigned char, 0, UCHAR_MAX, -1, true>
218{};
219
220#if !(defined (_STLP_NO_WCHAR_T) || defined (_STLP_WCHAR_T_IS_USHORT))
221
224 : public _STLP_PRIV _Integer_limits<wchar_t, WCHAR_MIN, WCHAR_MAX, -1, true>
225{};
226
227#endif
228
231 : public _STLP_PRIV _Integer_limits<short, SHRT_MIN, SHRT_MAX, -1, true>
232{};
233
236 : public _STLP_PRIV _Integer_limits<unsigned short, 0, USHRT_MAX, -1, true>
237{};
238
239#if defined (__xlC__) && (__xlC__ == 0x500)
240# undef INT_MIN
241# define INT_MIN -2147483648
242#endif
243
246 : public _STLP_PRIV _Integer_limits<int, INT_MIN, INT_MAX, -1, true>
247{};
248
251 : public _STLP_PRIV _Integer_limits<unsigned int, 0, UINT_MAX, -1, true>
252{};
253
256 : public _STLP_PRIV _Integer_limits<long, LONG_MIN, LONG_MAX, -1, true>
257{};
258
261 : public _STLP_PRIV _Integer_limits<unsigned long, 0, ULONG_MAX, -1, true>
262{};
263
264#if defined (_STLP_LONG_LONG)
265
266# if defined (_STLP_MSVC) || defined (__BORLANDC__)
267# define LONGLONG_MAX 0x7fffffffffffffffi64
268# define LONGLONG_MIN (-LONGLONG_MAX-1i64)
269# define ULONGLONG_MAX 0xffffffffffffffffUi64
270# else
271# ifndef LONGLONG_MAX
272# define LONGLONG_MAX 0x7fffffffffffffffLL
273# endif
274# ifndef LONGLONG_MIN
275# define LONGLONG_MIN (-LONGLONG_MAX-1LL)
276# endif
277# ifndef ULONGLONG_MAX
278# define ULONGLONG_MAX 0xffffffffffffffffULL
279# endif
280# endif
281
282# if !defined (__GNUC__) || (__GNUC__ == 2 && __GNUC_MINOR__ <= 96) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 3)
283
286 : public _STLP_PRIV _Integer_limits<_STLP_LONG_LONG, LONGLONG_MIN, LONGLONG_MAX, -1, true>
287{};
288
291 : public _STLP_PRIV _Integer_limits<unsigned _STLP_LONG_LONG, 0, ULONGLONG_MAX, -1, true>
292{};
293# else /* gcc 2.97 (after 2000-11-01), 2.98, 3.0 */
294/*
295 newest gcc has new mangling scheme, that has problem
296 with generating name [instantiated] of template specialization like
297 _Integer_limits<_STLP_LONG_LONG, LONGLONG_MIN, LONGLONG_MAX, -1, true>
298 ~~~~~~~~~~~~ ~~~~~~~~~~~~
299 Below is code that solve this problem.
300 - ptr
301 */
304 : public _STLP_PRIV _Numeric_limits_base<_STLP_LONG_LONG> {
305public:
306
309
310 _STLP_STATIC_CONSTANT(int, digits = ((int)((sizeof(_STLP_LONG_LONG) * (CHAR_BIT))) - 1));
311 _STLP_STATIC_CONSTANT(int, digits10 = (digits * 301UL) / 1000);
312 _STLP_STATIC_CONSTANT(int, radix = 2);
313 _STLP_STATIC_CONSTANT(bool, is_specialized = true);
314 _STLP_STATIC_CONSTANT(bool, is_signed = true);
315 _STLP_STATIC_CONSTANT(bool, is_integer = true);
316 _STLP_STATIC_CONSTANT(bool, is_exact = true);
317 _STLP_STATIC_CONSTANT(bool, is_bounded = true);
318 _STLP_STATIC_CONSTANT(bool, is_modulo = true);
319};
320
323 : public _STLP_PRIV _Numeric_limits_base<unsigned _STLP_LONG_LONG> {
324public:
325
326 static unsigned _STLP_LONG_LONG (_STLP_CALL min) () _STLP_NOTHROW { return 0ULL; }
327 static unsigned _STLP_LONG_LONG (_STLP_CALL max) () _STLP_NOTHROW { return ULONGLONG_MAX; }
328
329 _STLP_STATIC_CONSTANT(int, digits = ((int)((sizeof(unsigned _STLP_LONG_LONG) * (CHAR_BIT)))));
330 _STLP_STATIC_CONSTANT(int, digits10 = (digits * 301UL) / 1000);
331 _STLP_STATIC_CONSTANT(int, radix = 2);
332 _STLP_STATIC_CONSTANT(bool, is_specialized = true);
333 _STLP_STATIC_CONSTANT(bool, is_signed = false);
334 _STLP_STATIC_CONSTANT(bool, is_integer = true);
335 _STLP_STATIC_CONSTANT(bool, is_exact = true);
336 _STLP_STATIC_CONSTANT(bool, is_bounded = true);
337 _STLP_STATIC_CONSTANT(bool, is_modulo = true);
338};
339
340# endif /* __GNUC__ > 2000-11-01 */
341
342#endif /* _STLP_LONG_LONG */
343
345
346// Specializations for all built-in floating-point types.
347template <class __dummy>
348class _LimG {
349public:
350 static float _STLP_CALL get_F_inf();
351 static float _STLP_CALL get_F_qNaN();
352 static float _STLP_CALL get_F_sNaN();
354 static double _STLP_CALL get_D_inf();
355 static double _STLP_CALL get_D_qNaN();
356 static double _STLP_CALL get_D_sNaN();
358
359#if !defined (_STLP_NO_LONG_DOUBLE)
360 static long double _STLP_CALL get_LD_inf();
361 static long double _STLP_CALL get_LD_qNaN();
362 static long double _STLP_CALL get_LD_sNaN();
363 static long double _STLP_CALL get_LD_denormMin();
364#endif
365};
366
367#if defined (_STLP_USE_TEMPLATE_EXPORT)
369#endif
370
371#if defined (__GNUC__)
372# if defined (__FLT_DENORM_MIN__)
373# define _STLP_FLT_DENORM_MIN __FLT_DENORM_MIN__
374# else
375# define _STLP_FLT_DENORM_STYLE denorm_absent
376# endif
377# if defined (__DBL_DENORM_MIN__)
378# define _STLP_DBL_DENORM_MIN __DBL_DENORM_MIN__
379# else
380# define _STLP_DBL_DENORM_STYLE denorm_absent
381# endif
382# if defined (__LDBL_DENORM_MIN__)
383# define _STLP_LDBL_DENORM_MIN __LDBL_DENORM_MIN__
384# else
385# define _STLP_LDBL_DENORM_STYLE denorm_absent
386# endif
387#endif
388
389/* If compiler do not expose thanks to some macro its status regarding
390 * denormalized floating point numbers, we consider that denormalization
391 * is present. Unit tests will tell us if compiler do not support them. */
392#if !defined (_STLP_FLT_DENORM_STYLE)
393# define _STLP_FLT_DENORM_STYLE denorm_present
394#endif
395
396#if !defined (_STLP_DBL_DENORM_STYLE)
397# define _STLP_DBL_DENORM_STYLE denorm_present
398#endif
399
400#if !defined (_STLP_LDBL_DENORM_STYLE)
401# define _STLP_LDBL_DENORM_STYLE denorm_present
402#endif
403
405
408 : public _STLP_PRIV _Floating_limits<float,
409 FLT_MANT_DIG, // Binary digits of precision
410 FLT_DIG, // Decimal digits of precision
411 FLT_MIN_EXP, // Minimum exponent
412 FLT_MAX_EXP, // Maximum exponent
413 FLT_MIN_10_EXP, // Minimum base 10 exponent
414 FLT_MAX_10_EXP, // Maximum base 10 exponent
415 true,
416 _STLP_FLT_DENORM_STYLE,
417 round_to_nearest> {
418public:
419 static float (_STLP_CALL min) () _STLP_NOTHROW { return FLT_MIN; }
421#if defined (_STLP_FLT_DENORM_MIN)
422 { return _STLP_FLT_DENORM_MIN; }
423#else
425#endif
426 static float (_STLP_CALL max) () _STLP_NOTHROW { return FLT_MAX; }
427 static float _STLP_CALL epsilon() _STLP_NOTHROW { return FLT_EPSILON; }
428 static float _STLP_CALL round_error() _STLP_NOTHROW { return 0.5f; } // Units: ulps.
432};
433
434#undef _STLP_FLT_DENORM_MIN
435#undef _STLP_FLT_DNORM_STYLE
436
439 : public _STLP_PRIV _Floating_limits<double,
440 DBL_MANT_DIG, // Binary digits of precision
441 DBL_DIG, // Decimal digits of precision
442 DBL_MIN_EXP, // Minimum exponent
443 DBL_MAX_EXP, // Maximum exponent
444 DBL_MIN_10_EXP, // Minimum base 10 exponent
445 DBL_MAX_10_EXP, // Maximum base 10 exponent
446 true,
447 _STLP_DBL_DENORM_STYLE,
448 round_to_nearest> {
449public:
452#if defined (_STLP_DBL_DENORM_MIN)
453 { return _STLP_DBL_DENORM_MIN; }
454#else
456#endif
458 static double _STLP_CALL epsilon() _STLP_NOTHROW { return DBL_EPSILON; }
459 static double _STLP_CALL round_error() _STLP_NOTHROW { return 0.5; } // Units: ulps.
463};
464
465#if !defined (_STLP_NO_LONG_DOUBLE)
466
469 : public _STLP_PRIV _Floating_limits<long double,
470 LDBL_MANT_DIG, // Binary digits of precision
471 LDBL_DIG, // Decimal digits of precision
472 LDBL_MIN_EXP, // Minimum exponent
473 LDBL_MAX_EXP, // Maximum exponent
474 LDBL_MIN_10_EXP,// Minimum base 10 exponent
475 LDBL_MAX_10_EXP,// Maximum base 10 exponent
476 false, // do not conform to iec559
477 _STLP_LDBL_DENORM_STYLE,
478 round_to_nearest> {
479public:
480 static long double (_STLP_CALL min) () _STLP_NOTHROW { return LDBL_MIN; }
482#if defined (_STLP_LDBL_DENORM_MIN)
483 { return _STLP_LDBL_DENORM_MIN; }
484#else
486#endif
487 _STLP_STATIC_CONSTANT(bool, is_iec559 = false);
488 static long double (_STLP_CALL max) () _STLP_NOTHROW { return LDBL_MAX; }
489 static long double _STLP_CALL epsilon() _STLP_NOTHROW { return LDBL_EPSILON; }
490 static long double _STLP_CALL round_error() _STLP_NOTHROW { return 0.5l; }
491 static long double _STLP_CALL infinity() _STLP_NOTHROW
492 //For MSVC, long double is nothing more than an alias for double.
493#if !defined (_STLP_MSVC)
495#else
497#endif
498 static long double _STLP_CALL quiet_NaN() _STLP_NOTHROW
499#if !defined (_STLP_MSVC)
501#else
503#endif
505#if !defined (_STLP_MSVC)
507#else
509#endif
510};
511
512#endif
513
514// We write special values (Inf and NaN) as bit patterns and
515// cast the the appropriate floating-point types.
517
518#if !defined (_STLP_LINK_TIME_INSTANTIATION)
519# include <stl/_limits.c>
520#endif
521
522#endif
523
524// Local Variables:
525// mode:C++
526// End:
#define _STLP_LONG_LONG
Definition: _apcc.h:12
#define _STLP_CALL
Definition: _bc.h:131
#define _STLP_PRIV
Definition: _dm.h:70
#define _STLP_NOTHROW
Definition: _intel.h:35
#define _STLP_DBL_DENORM_STYLE
Definition: _limits.h:397
#define _STLP_FLT_DENORM_STYLE
Definition: _limits.h:393
float_round_style
Definition: _limits.h:41
@ round_toward_zero
Definition: _limits.h:43
@ round_toward_infinity
Definition: _limits.h:45
@ round_to_nearest
Definition: _limits.h:44
@ round_toward_neg_infinity
Definition: _limits.h:46
@ round_indeterminate
Definition: _limits.h:42
float_denorm_style
Definition: _limits.h:49
@ denorm_present
Definition: _limits.h:52
@ denorm_absent
Definition: _limits.h:51
@ denorm_indeterminate
Definition: _limits.h:50
#define _STLP_LIMITS_MAX_TYPE
Definition: _limits.h:118
#define _STLP_LDBL_DENORM_STYLE
Definition: _limits.h:401
#define _STLP_LIMITS_MIN_TYPE
Definition: _limits.h:117
_STLP_STATIC_CONSTANT(int, max_exponent=__MaxExp)
_STLP_STATIC_CONSTANT(float_round_style, round_style=__RoundStyle)
_STLP_STATIC_CONSTANT(bool, is_signed=true)
_STLP_STATIC_CONSTANT(bool, has_quiet_NaN=true)
_STLP_STATIC_CONSTANT(int, digits10=__Digits10)
_STLP_STATIC_CONSTANT(bool, is_iec559=__IsIEC559 &&has_infinity &&has_quiet_NaN &&has_signaling_NaN &&(has_denorm==denorm_present))
_STLP_STATIC_CONSTANT(int, min_exponent=__MinExp)
_STLP_STATIC_CONSTANT(bool, tinyness_before=false)
_STLP_STATIC_CONSTANT(bool, has_denorm_loss=false)
_STLP_STATIC_CONSTANT(bool, is_bounded=true)
_STLP_STATIC_CONSTANT(int, min_exponent10=__MinExp10)
_STLP_STATIC_CONSTANT(float_denorm_style, has_denorm=__DenormStyle)
_STLP_STATIC_CONSTANT(int, max_exponent10=__MaxExp10)
_STLP_STATIC_CONSTANT(bool, has_signaling_NaN=true)
_STLP_STATIC_CONSTANT(bool, is_specialized=true)
_STLP_STATIC_CONSTANT(bool, has_infinity=true)
_STLP_STATIC_CONSTANT(bool, traps=true)
_STLP_STATIC_CONSTANT(int, digits=__Digits)
_STLP_STATIC_CONSTANT(int, radix=FLT_RADIX)
static _Int _STLP_CALL max() _STLP_NOTHROW
Definition: _limits.h:129
static _Int _STLP_CALL min() _STLP_NOTHROW
Definition: _limits.h:128
_STLP_STATIC_CONSTANT(bool, is_modulo=__ismod)
_STLP_STATIC_CONSTANT(bool, is_specialized=true)
_STLP_STATIC_CONSTANT(int, digits=(__idigits< 0) ?((int)((sizeof(_Int) *(CHAR_BIT))) -((__imin==0) ? 0 :1)) :(__idigits))
_STLP_STATIC_CONSTANT(bool, is_signed=(__imin !=0))
_STLP_STATIC_CONSTANT(bool, is_integer=true)
_STLP_STATIC_CONSTANT(int, radix=2)
_STLP_STATIC_CONSTANT(bool, is_bounded=true)
_STLP_STATIC_CONSTANT(bool, is_exact=true)
_STLP_STATIC_CONSTANT(int, digits10=(digits *301UL)/1000)
Definition: _limits.h:348
static double _STLP_CALL get_D_qNaN()
static long double _STLP_CALL get_LD_qNaN()
static float _STLP_CALL get_F_sNaN()
static long double _STLP_CALL get_LD_sNaN()
static double _STLP_CALL get_D_inf()
static float _STLP_CALL get_F_qNaN()
static long double _STLP_CALL get_LD_denormMin()
static double _STLP_CALL get_D_sNaN()
static long double _STLP_CALL get_LD_inf()
static double _STLP_CALL get_D_denormMin()
static float _STLP_CALL get_F_inf()
static float _STLP_CALL get_F_denormMin()
static __number _STLP_CALL quiet_NaN() _STLP_NOTHROW
Definition: _limits.h:101
_STLP_STATIC_CONSTANT(int, min_exponent10=0)
_STLP_STATIC_CONSTANT(bool, is_signed=false)
_STLP_STATIC_CONSTANT(int, digits10=0)
_STLP_STATIC_CONSTANT(bool, is_iec559=false)
_STLP_STATIC_CONSTANT(bool, tinyness_before=false)
_STLP_STATIC_CONSTANT(bool, traps=false)
static __number _STLP_CALL epsilon() _STLP_NOTHROW
Definition: _limits.h:97
_STLP_STATIC_CONSTANT(bool, has_infinity=false)
_STLP_STATIC_CONSTANT(int, min_exponent=0)
static __number _STLP_CALL max() _STLP_NOTHROW
Definition: _limits.h:70
static __number _STLP_CALL min() _STLP_NOTHROW
Definition: _limits.h:69
_STLP_STATIC_CONSTANT(bool, is_specialized=false)
static __number _STLP_CALL round_error() _STLP_NOTHROW
Definition: _limits.h:98
_STLP_STATIC_CONSTANT(int, digits=0)
_STLP_STATIC_CONSTANT(bool, is_integer=false)
_STLP_STATIC_CONSTANT(bool, has_signaling_NaN=false)
static __number _STLP_CALL infinity() _STLP_NOTHROW
Definition: _limits.h:100
_STLP_STATIC_CONSTANT(float_denorm_style, has_denorm=denorm_absent)
_STLP_STATIC_CONSTANT(int, max_exponent10=0)
static __number _STLP_CALL signaling_NaN() _STLP_NOTHROW
Definition: _limits.h:102
_STLP_STATIC_CONSTANT(bool, has_denorm_loss=false)
_STLP_STATIC_CONSTANT(bool, is_bounded=false)
static __number _STLP_CALL denorm_min() _STLP_NOTHROW
Definition: _limits.h:103
_STLP_STATIC_CONSTANT(bool, has_quiet_NaN=false)
_STLP_STATIC_CONSTANT(int, radix=0)
_STLP_STATIC_CONSTANT(bool, is_modulo=false)
_STLP_STATIC_CONSTANT(float_round_style, round_style=round_toward_zero)
_STLP_STATIC_CONSTANT(int, max_exponent=0)
_STLP_STATIC_CONSTANT(bool, is_exact=false)
static double(_STLP_CALL max)() _STLP_NOTHROW
Definition: _limits.h:457
static double _STLP_CALL signaling_NaN() _STLP_NOTHROW
Definition: _limits.h:462
static double _STLP_CALL round_error() _STLP_NOTHROW
Definition: _limits.h:459
static double _STLP_CALL epsilon() _STLP_NOTHROW
Definition: _limits.h:458
static double(_STLP_CALL min)() _STLP_NOTHROW
Definition: _limits.h:450
static double _STLP_CALL quiet_NaN() _STLP_NOTHROW
Definition: _limits.h:461
static double _STLP_CALL denorm_min() _STLP_NOTHROW
Definition: _limits.h:451
static double _STLP_CALL infinity() _STLP_NOTHROW
Definition: _limits.h:460
static float _STLP_CALL signaling_NaN() _STLP_NOTHROW
Definition: _limits.h:431
static float _STLP_CALL epsilon() _STLP_NOTHROW
Definition: _limits.h:427
static float _STLP_CALL denorm_min() _STLP_NOTHROW
Definition: _limits.h:420
static float _STLP_CALL infinity() _STLP_NOTHROW
Definition: _limits.h:429
static float(_STLP_CALL min)() _STLP_NOTHROW
Definition: _limits.h:419
static float(_STLP_CALL max)() _STLP_NOTHROW
Definition: _limits.h:426
static float _STLP_CALL round_error() _STLP_NOTHROW
Definition: _limits.h:428
static float _STLP_CALL quiet_NaN() _STLP_NOTHROW
Definition: _limits.h:430
static long double _STLP_CALL denorm_min() _STLP_NOTHROW
Definition: _limits.h:481
static long double _STLP_CALL signaling_NaN() _STLP_NOTHROW
Definition: _limits.h:504
static long double(_STLP_CALL min)() _STLP_NOTHROW
Definition: _limits.h:480
static long double _STLP_CALL quiet_NaN() _STLP_NOTHROW
Definition: _limits.h:498
static long double _STLP_CALL infinity() _STLP_NOTHROW
Definition: _limits.h:491
_STLP_STATIC_CONSTANT(bool, is_iec559=false)
static long double _STLP_CALL round_error() _STLP_NOTHROW
Definition: _limits.h:490
static long double(_STLP_CALL max)() _STLP_NOTHROW
Definition: _limits.h:488
static long double _STLP_CALL epsilon() _STLP_NOTHROW
Definition: _limits.h:489
unsigned short wchar_t
Definition: crtdefs.h:345
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
unsigned char
Definition: typeof.h:29
unsigned long
Definition: typeof.h:102
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
Definition: typeof.h:94
#define CHAR_BIT
Definition: urlcache.c:62
#define _STLP_TEMPLATE_NULL
Definition: features.h:652
#define _STLP_MOVE_TO_STD_NAMESPACE
Definition: features.h:525
#define _STLP_EXPORT_TEMPLATE_CLASS
Definition: features.h:987
#define _STLP_BEGIN_NAMESPACE
Definition: features.h:501
#define _STLP_STATIC_CONSTANT(__type, __assignment)
Definition: features.h:805
#define _STLP_END_NAMESPACE
Definition: features.h:503
#define _STLP_MOVE_TO_PRIV_NAMESPACE
Definition: features.h:524
#define LDBL_MIN
Definition: gcc_float.h:126
#define FLT_RADIX
Definition: gcc_float.h:36
#define FLT_MAX
Definition: gcc_float.h:107
#define FLT_MIN
Definition: gcc_float.h:124
#define FLT_EPSILON
Definition: gcc_float.h:116
#define DBL_MIN
Definition: gcc_float.h:125
#define DBL_EPSILON
Definition: gcc_float.h:117
#define LDBL_EPSILON
Definition: gcc_float.h:118
#define LDBL_MAX
Definition: gcc_float.h:109
#define DBL_MAX
Definition: gcc_float.h:108
#define LONGLONG_MIN
Definition: intsafe.h:126
#define ULONGLONG_MAX
Definition: intsafe.h:160
#define LONGLONG_MAX
Definition: intsafe.h:157
static const int digits[]
Definition: decode.c:71
#define ULL(a, b)
Definition: format_msg.c:27
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
Definition: string.c:80
static unsigned(__cdecl *hash_bstr)(bstr_t s)
static float(__cdecl *square_half_float)(float x
#define min(a, b)
Definition: monoChain.cc:55
#define bool
Definition: nsiface.idl:72
static BOOL is_integer(parse_buffer *buf)
Definition: parsing.c:571
#define signed
Definition: prototyp.h:114
#define max(a, b)
Definition: svc.c:63