1 // Static data members of -*- C++ -*- numeric_limits classes
3 // Copyright (C) 1999, 2001 Free Software Foundation, Inc.
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the
7 // terms of the GNU General Public License as published by the
8 // Free Software Foundation; either version 2, or (at your option)
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License along
17 // with this library; see the file COPYING. If not, write to the Free
18 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
21 // As a special exception, you may use this file as part of a free software
22 // library without restriction. Specifically, if other files instantiate
23 // templates or use macros or inline functions from this file, or you compile
24 // this file and link it with other files to produce an executable, this
25 // file does not by itself cause the resulting executable to be covered by
26 // the GNU General Public License. This exception does not however
27 // invalidate any other reasons why the executable file might be covered by
28 // the GNU General Public License.
30 // Written by Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr>
42 const bool numeric_limits
<bool>::is_specialized
;
43 const int numeric_limits
<bool>::digits
;
44 const int numeric_limits
<bool>::digits10
;
45 const bool numeric_limits
<bool>::is_signed
;
46 const bool numeric_limits
<bool>::is_integer
;
47 const bool numeric_limits
<bool>::is_exact
;
48 const int numeric_limits
<bool>::radix
;
49 const int numeric_limits
<bool>::min_exponent
;
50 const int numeric_limits
<bool>::min_exponent10
;
51 const int numeric_limits
<bool>::max_exponent
;
52 const int numeric_limits
<bool>::max_exponent10
;
53 const bool numeric_limits
<bool>::has_infinity
;
54 const bool numeric_limits
<bool>::has_quiet_NaN
;
55 const bool numeric_limits
<bool>::has_signaling_NaN
;
56 const float_denorm_style numeric_limits
<bool>::has_denorm
;
57 const bool numeric_limits
<bool>::has_denorm_loss
;
58 const bool numeric_limits
<bool>::is_iec559
;
59 const bool numeric_limits
<bool>::is_bounded
;
60 const bool numeric_limits
<bool>::is_modulo
;
61 const bool numeric_limits
<bool>::traps
;
62 const bool numeric_limits
<bool>::tinyness_before
;
63 const float_round_style numeric_limits
<bool>::round_style
;
66 const bool numeric_limits
<char>::is_specialized
;
67 const int numeric_limits
<char>::digits
;
68 const int numeric_limits
<char>::digits10
;
69 const bool numeric_limits
<char>::is_signed
;
70 const bool numeric_limits
<char>::is_integer
;
71 const bool numeric_limits
<char>::is_exact
;
72 const int numeric_limits
<char>::radix
;
73 const int numeric_limits
<char>::min_exponent
;
74 const int numeric_limits
<char>::min_exponent10
;
75 const int numeric_limits
<char>::max_exponent
;
76 const int numeric_limits
<char>::max_exponent10
;
77 const bool numeric_limits
<char>::has_infinity
;
78 const bool numeric_limits
<char>::has_quiet_NaN
;
79 const bool numeric_limits
<char>::has_signaling_NaN
;
80 const float_denorm_style numeric_limits
<char>::has_denorm
;
81 const bool numeric_limits
<char>::has_denorm_loss
;
82 const bool numeric_limits
<char>::is_iec559
;
83 const bool numeric_limits
<char>::is_bounded
;
84 const bool numeric_limits
<char>::is_modulo
;
85 const bool numeric_limits
<char>::traps
;
86 const bool numeric_limits
<char>::tinyness_before
;
87 const float_round_style numeric_limits
<char>::round_style
;
90 const bool numeric_limits
<signed char>::is_specialized
;
91 const int numeric_limits
<signed char>::digits
;
92 const int numeric_limits
<signed char>::digits10
;
93 const bool numeric_limits
<signed char>::is_signed
;
94 const bool numeric_limits
<signed char>::is_integer
;
95 const bool numeric_limits
<signed char>::is_exact
;
96 const int numeric_limits
<signed char>::radix
;
97 const int numeric_limits
<signed char>::min_exponent
;
98 const int numeric_limits
<signed char>::min_exponent10
;
99 const int numeric_limits
<signed char>::max_exponent
;
100 const int numeric_limits
<signed char>::max_exponent10
;
101 const bool numeric_limits
<signed char>::has_infinity
;
102 const bool numeric_limits
<signed char>::has_quiet_NaN
;
103 const bool numeric_limits
<signed char>::has_signaling_NaN
;
104 const float_denorm_style numeric_limits
<signed char>::has_denorm
;
105 const bool numeric_limits
<signed char>::has_denorm_loss
;
106 const bool numeric_limits
<signed char>::is_iec559
;
107 const bool numeric_limits
<signed char>::is_bounded
;
108 const bool numeric_limits
<signed char>::is_modulo
;
109 const bool numeric_limits
<signed char>::traps
;
110 const bool numeric_limits
<signed char>::tinyness_before
;
111 const float_round_style numeric_limits
<signed char>::round_style
;
114 const bool numeric_limits
<unsigned char>::is_specialized
;
115 const int numeric_limits
<unsigned char>::digits
;
116 const int numeric_limits
<unsigned char>::digits10
;
117 const bool numeric_limits
<unsigned char>::is_signed
;
118 const bool numeric_limits
<unsigned char>::is_integer
;
119 const bool numeric_limits
<unsigned char>::is_exact
;
120 const int numeric_limits
<unsigned char>::radix
;
121 const int numeric_limits
<unsigned char>::min_exponent
;
122 const int numeric_limits
<unsigned char>::min_exponent10
;
123 const int numeric_limits
<unsigned char>::max_exponent
;
124 const int numeric_limits
<unsigned char>::max_exponent10
;
125 const bool numeric_limits
<unsigned char>::has_infinity
;
126 const bool numeric_limits
<unsigned char>::has_quiet_NaN
;
127 const bool numeric_limits
<unsigned char>::has_signaling_NaN
;
128 const float_denorm_style numeric_limits
<unsigned char>::has_denorm
;
129 const bool numeric_limits
<unsigned char>::has_denorm_loss
;
130 const bool numeric_limits
<unsigned char>::is_iec559
;
131 const bool numeric_limits
<unsigned char>::is_bounded
;
132 const bool numeric_limits
<unsigned char>::is_modulo
;
133 const bool numeric_limits
<unsigned char>::traps
;
134 const bool numeric_limits
<unsigned char>::tinyness_before
;
135 const float_round_style numeric_limits
<unsigned char>::round_style
;
138 // This used to be problematic...
139 #ifdef _GLIBCPP_USE_WCHAR_T
140 const bool numeric_limits
<wchar_t>::is_specialized
;
141 const int numeric_limits
<wchar_t>::digits
;
142 const int numeric_limits
<wchar_t>::digits10
;
143 const bool numeric_limits
<wchar_t>::is_signed
;
144 const bool numeric_limits
<wchar_t>::is_integer
;
145 const bool numeric_limits
<wchar_t>::is_exact
;
146 const int numeric_limits
<wchar_t>::radix
;
147 const int numeric_limits
<wchar_t>::min_exponent
;
148 const int numeric_limits
<wchar_t>::min_exponent10
;
149 const int numeric_limits
<wchar_t>::max_exponent
;
150 const int numeric_limits
<wchar_t>::max_exponent10
;
151 const bool numeric_limits
<wchar_t>::has_infinity
;
152 const bool numeric_limits
<wchar_t>::has_quiet_NaN
;
153 const bool numeric_limits
<wchar_t>::has_signaling_NaN
;
154 const float_denorm_style numeric_limits
<wchar_t>::has_denorm
;
155 const bool numeric_limits
<wchar_t>::has_denorm_loss
;
156 const bool numeric_limits
<wchar_t>::is_iec559
;
157 const bool numeric_limits
<wchar_t>::is_bounded
;
158 const bool numeric_limits
<wchar_t>::is_modulo
;
159 const bool numeric_limits
<wchar_t>::traps
;
160 const bool numeric_limits
<wchar_t>::tinyness_before
;
161 const float_round_style numeric_limits
<wchar_t>::round_style
;
162 #endif // _GLIBCPP_USE_WCHAR_T
165 const bool numeric_limits
<short>::is_specialized
;
166 const int numeric_limits
<short>::digits
;
167 const int numeric_limits
<short>::digits10
;
168 const bool numeric_limits
<short>::is_signed
;
169 const bool numeric_limits
<short>::is_integer
;
170 const bool numeric_limits
<short>::is_exact
;
171 const int numeric_limits
<short>::radix
;
172 const int numeric_limits
<short>::min_exponent
;
173 const int numeric_limits
<short>::min_exponent10
;
174 const int numeric_limits
<short>::max_exponent
;
175 const int numeric_limits
<short>::max_exponent10
;
176 const bool numeric_limits
<short>::has_infinity
;
177 const bool numeric_limits
<short>::has_quiet_NaN
;
178 const bool numeric_limits
<short>::has_signaling_NaN
;
179 const float_denorm_style numeric_limits
<short>::has_denorm
;
180 const bool numeric_limits
<short>::has_denorm_loss
;
181 const bool numeric_limits
<short>::is_iec559
;
182 const bool numeric_limits
<short>::is_bounded
;
183 const bool numeric_limits
<short>::is_modulo
;
184 const bool numeric_limits
<short>::traps
;
185 const bool numeric_limits
<short>::tinyness_before
;
186 const float_round_style numeric_limits
<short>::round_style
;
189 const bool numeric_limits
<unsigned short>::is_specialized
;
190 const int numeric_limits
<unsigned short>::digits
;
191 const int numeric_limits
<unsigned short>::digits10
;
192 const bool numeric_limits
<unsigned short>::is_signed
;
193 const bool numeric_limits
<unsigned short>::is_integer
;
194 const bool numeric_limits
<unsigned short>::is_exact
;
195 const int numeric_limits
<unsigned short>::radix
;
196 const int numeric_limits
<unsigned short>::min_exponent
;
197 const int numeric_limits
<unsigned short>::min_exponent10
;
198 const int numeric_limits
<unsigned short>::max_exponent
;
199 const int numeric_limits
<unsigned short>::max_exponent10
;
200 const bool numeric_limits
<unsigned short>::has_infinity
;
201 const bool numeric_limits
<unsigned short>::has_quiet_NaN
;
202 const bool numeric_limits
<unsigned short>::has_signaling_NaN
;
203 const float_denorm_style numeric_limits
<unsigned short>::has_denorm
;
204 const bool numeric_limits
<unsigned short>::has_denorm_loss
;
205 const bool numeric_limits
<unsigned short>::is_iec559
;
206 const bool numeric_limits
<unsigned short>::is_bounded
;
207 const bool numeric_limits
<unsigned short>::is_modulo
;
208 const bool numeric_limits
<unsigned short>::traps
;
209 const bool numeric_limits
<unsigned short>::tinyness_before
;
210 const float_round_style numeric_limits
<unsigned short>::round_style
;
213 const bool numeric_limits
<int>::is_specialized
;
214 const int numeric_limits
<int>::digits
;
215 const int numeric_limits
<int>::digits10
;
216 const bool numeric_limits
<int>::is_signed
;
217 const bool numeric_limits
<int>::is_integer
;
218 const bool numeric_limits
<int>::is_exact
;
219 const int numeric_limits
<int>::radix
;
220 const int numeric_limits
<int>::min_exponent
;
221 const int numeric_limits
<int>::min_exponent10
;
222 const int numeric_limits
<int>::max_exponent
;
223 const int numeric_limits
<int>::max_exponent10
;
224 const bool numeric_limits
<int>::has_infinity
;
225 const bool numeric_limits
<int>::has_quiet_NaN
;
226 const bool numeric_limits
<int>::has_signaling_NaN
;
227 const float_denorm_style numeric_limits
<int>::has_denorm
;
228 const bool numeric_limits
<int>::has_denorm_loss
;
229 const bool numeric_limits
<int>::is_iec559
;
230 const bool numeric_limits
<int>::is_bounded
;
231 const bool numeric_limits
<int>::is_modulo
;
232 const bool numeric_limits
<int>::traps
;
233 const bool numeric_limits
<int>::tinyness_before
;
234 const float_round_style numeric_limits
<int>::round_style
;
237 const bool numeric_limits
<unsigned int>::is_specialized
;
238 const int numeric_limits
<unsigned int>::digits
;
239 const int numeric_limits
<unsigned int>::digits10
;
240 const bool numeric_limits
<unsigned int>::is_signed
;
241 const bool numeric_limits
<unsigned int>::is_integer
;
242 const bool numeric_limits
<unsigned int>::is_exact
;
243 const int numeric_limits
<unsigned int>::radix
;
244 const int numeric_limits
<unsigned int>::min_exponent
;
245 const int numeric_limits
<unsigned int>::min_exponent10
;
246 const int numeric_limits
<unsigned int>::max_exponent
;
247 const int numeric_limits
<unsigned int>::max_exponent10
;
248 const bool numeric_limits
<unsigned int>::has_infinity
;
249 const bool numeric_limits
<unsigned int>::has_quiet_NaN
;
250 const bool numeric_limits
<unsigned int>::has_signaling_NaN
;
251 const float_denorm_style numeric_limits
<unsigned int>::has_denorm
;
252 const bool numeric_limits
<unsigned int>::has_denorm_loss
;
253 const bool numeric_limits
<unsigned int>::is_iec559
;
254 const bool numeric_limits
<unsigned int>::is_bounded
;
255 const bool numeric_limits
<unsigned int>::is_modulo
;
256 const bool numeric_limits
<unsigned int>::traps
;
257 const bool numeric_limits
<unsigned int>::tinyness_before
;
258 const float_round_style numeric_limits
<unsigned int>::round_style
;
261 const bool numeric_limits
<long>::is_specialized
;
262 const int numeric_limits
<long>::digits
;
263 const int numeric_limits
<long>::digits10
;
264 const bool numeric_limits
<long>::is_signed
;
265 const bool numeric_limits
<long>::is_integer
;
266 const bool numeric_limits
<long>::is_exact
;
267 const int numeric_limits
<long>::radix
;
268 const int numeric_limits
<long>::min_exponent
;
269 const int numeric_limits
<long>::min_exponent10
;
270 const int numeric_limits
<long>::max_exponent
;
271 const int numeric_limits
<long>::max_exponent10
;
272 const bool numeric_limits
<long>::has_infinity
;
273 const bool numeric_limits
<long>::has_quiet_NaN
;
274 const bool numeric_limits
<long>::has_signaling_NaN
;
275 const float_denorm_style numeric_limits
<long>::has_denorm
;
276 const bool numeric_limits
<long>::has_denorm_loss
;
277 const bool numeric_limits
<long>::is_iec559
;
278 const bool numeric_limits
<long>::is_bounded
;
279 const bool numeric_limits
<long>::is_modulo
;
280 const bool numeric_limits
<long>::traps
;
281 const bool numeric_limits
<long>::tinyness_before
;
282 const float_round_style numeric_limits
<long>::round_style
;
285 const bool numeric_limits
<unsigned long>::is_specialized
;
286 const int numeric_limits
<unsigned long>::digits
;
287 const int numeric_limits
<unsigned long>::digits10
;
288 const bool numeric_limits
<unsigned long>::is_signed
;
289 const bool numeric_limits
<unsigned long>::is_integer
;
290 const bool numeric_limits
<unsigned long>::is_exact
;
291 const int numeric_limits
<unsigned long>::radix
;
292 const int numeric_limits
<unsigned long>::min_exponent
;
293 const int numeric_limits
<unsigned long>::min_exponent10
;
294 const int numeric_limits
<unsigned long>::max_exponent
;
295 const int numeric_limits
<unsigned long>::max_exponent10
;
296 const bool numeric_limits
<unsigned long>::has_infinity
;
297 const bool numeric_limits
<unsigned long>::has_quiet_NaN
;
298 const bool numeric_limits
<unsigned long>::has_signaling_NaN
;
299 const float_denorm_style numeric_limits
<unsigned long>::has_denorm
;
300 const bool numeric_limits
<unsigned long>::has_denorm_loss
;
301 const bool numeric_limits
<unsigned long>::is_iec559
;
302 const bool numeric_limits
<unsigned long>::is_bounded
;
303 const bool numeric_limits
<unsigned long>::is_modulo
;
304 const bool numeric_limits
<unsigned long>::traps
;
305 const bool numeric_limits
<unsigned long>::tinyness_before
;
306 const float_round_style numeric_limits
<unsigned long>::round_style
;
308 // NOTA BENE: long long is an extension
309 const bool numeric_limits
<long long>::is_specialized
;
310 const int numeric_limits
<long long>::digits
;
311 const int numeric_limits
<long long>::digits10
;
312 const bool numeric_limits
<long long>::is_signed
;
313 const bool numeric_limits
<long long>::is_integer
;
314 const bool numeric_limits
<long long>::is_exact
;
315 const int numeric_limits
<long long>::radix
;
316 const int numeric_limits
<long long>::min_exponent
;
317 const int numeric_limits
<long long>::min_exponent10
;
318 const int numeric_limits
<long long>::max_exponent
;
319 const int numeric_limits
<long long>::max_exponent10
;
320 const bool numeric_limits
<long long>::has_infinity
;
321 const bool numeric_limits
<long long>::has_quiet_NaN
;
322 const bool numeric_limits
<long long>::has_signaling_NaN
;
323 const float_denorm_style numeric_limits
<long long>::has_denorm
;
324 const bool numeric_limits
<long long>::has_denorm_loss
;
325 const bool numeric_limits
<long long>::is_iec559
;
326 const bool numeric_limits
<long long>::is_bounded
;
327 const bool numeric_limits
<long long>::is_modulo
;
328 const bool numeric_limits
<long long>::traps
;
329 const bool numeric_limits
<long long>::tinyness_before
;
330 const float_round_style numeric_limits
<long long>::round_style
;
332 const bool numeric_limits
<unsigned long long>::is_specialized
;
333 const int numeric_limits
<unsigned long long>::digits
;
334 const int numeric_limits
<unsigned long long>::digits10
;
335 const bool numeric_limits
<unsigned long long>::is_signed
;
336 const bool numeric_limits
<unsigned long long>::is_integer
;
337 const bool numeric_limits
<unsigned long long>::is_exact
;
338 const int numeric_limits
<unsigned long long>::radix
;
339 const int numeric_limits
<unsigned long long>::min_exponent
;
340 const int numeric_limits
<unsigned long long>::min_exponent10
;
341 const int numeric_limits
<unsigned long long>::max_exponent
;
342 const int numeric_limits
<unsigned long long>::max_exponent10
;
343 const bool numeric_limits
<unsigned long long>::has_infinity
;
344 const bool numeric_limits
<unsigned long long>::has_quiet_NaN
;
345 const bool numeric_limits
<unsigned long long>::has_signaling_NaN
;
346 const float_denorm_style numeric_limits
<unsigned long long>::has_denorm
;
347 const bool numeric_limits
<unsigned long long>::has_denorm_loss
;
348 const bool numeric_limits
<unsigned long long>::is_iec559
;
349 const bool numeric_limits
<unsigned long long>::is_bounded
;
350 const bool numeric_limits
<unsigned long long>::is_modulo
;
351 const bool numeric_limits
<unsigned long long>::traps
;
352 const bool numeric_limits
<unsigned long long>::tinyness_before
;
353 const float_round_style numeric_limits
<unsigned long long>::round_style
;
356 const bool numeric_limits
<float>::is_specialized
;
357 const int numeric_limits
<float>::digits
;
358 const int numeric_limits
<float>::digits10
;
359 const bool numeric_limits
<float>::is_signed
;
360 const bool numeric_limits
<float>::is_integer
;
361 const bool numeric_limits
<float>::is_exact
;
362 const int numeric_limits
<float>::radix
;
363 const int numeric_limits
<float>::min_exponent
;
364 const int numeric_limits
<float>::min_exponent10
;
365 const int numeric_limits
<float>::max_exponent
;
366 const int numeric_limits
<float>::max_exponent10
;
367 const bool numeric_limits
<float>::has_infinity
;
368 const bool numeric_limits
<float>::has_quiet_NaN
;
369 const bool numeric_limits
<float>::has_signaling_NaN
;
370 const float_denorm_style numeric_limits
<float>::has_denorm
;
371 const bool numeric_limits
<float>::has_denorm_loss
;
372 const bool numeric_limits
<float>::is_iec559
;
373 const bool numeric_limits
<float>::is_bounded
;
374 const bool numeric_limits
<float>::is_modulo
;
375 const bool numeric_limits
<float>::traps
;
376 const bool numeric_limits
<float>::tinyness_before
;
377 const float_round_style numeric_limits
<float>::round_style
;
380 const bool numeric_limits
<double>::is_specialized
;
381 const int numeric_limits
<double>::digits
;
382 const int numeric_limits
<double>::digits10
;
383 const bool numeric_limits
<double>::is_signed
;
384 const bool numeric_limits
<double>::is_integer
;
385 const bool numeric_limits
<double>::is_exact
;
386 const int numeric_limits
<double>::radix
;
387 const int numeric_limits
<double>::min_exponent
;
388 const int numeric_limits
<double>::min_exponent10
;
389 const int numeric_limits
<double>::max_exponent
;
390 const int numeric_limits
<double>::max_exponent10
;
391 const bool numeric_limits
<double>::has_infinity
;
392 const bool numeric_limits
<double>::has_quiet_NaN
;
393 const bool numeric_limits
<double>::has_signaling_NaN
;
394 const float_denorm_style numeric_limits
<double>::has_denorm
;
395 const bool numeric_limits
<double>::has_denorm_loss
;
396 const bool numeric_limits
<double>::is_iec559
;
397 const bool numeric_limits
<double>::is_bounded
;
398 const bool numeric_limits
<double>::is_modulo
;
399 const bool numeric_limits
<double>::traps
;
400 const bool numeric_limits
<double>::tinyness_before
;
401 const float_round_style numeric_limits
<double>::round_style
;
404 const bool numeric_limits
<long double>::is_specialized
;
405 const int numeric_limits
<long double>::digits
;
406 const int numeric_limits
<long double>::digits10
;
407 const bool numeric_limits
<long double>::is_signed
;
408 const bool numeric_limits
<long double>::is_integer
;
409 const bool numeric_limits
<long double>::is_exact
;
410 const int numeric_limits
<long double>::radix
;
411 const int numeric_limits
<long double>::min_exponent
;
412 const int numeric_limits
<long double>::min_exponent10
;
413 const int numeric_limits
<long double>::max_exponent
;
414 const int numeric_limits
<long double>::max_exponent10
;
415 const bool numeric_limits
<long double>::has_infinity
;
416 const bool numeric_limits
<long double>::has_quiet_NaN
;
417 const bool numeric_limits
<long double>::has_signaling_NaN
;
418 const float_denorm_style numeric_limits
<long double>::has_denorm
;
419 const bool numeric_limits
<long double>::has_denorm_loss
;
420 const bool numeric_limits
<long double>::is_iec559
;
421 const bool numeric_limits
<long double>::is_bounded
;
422 const bool numeric_limits
<long double>::is_modulo
;
423 const bool numeric_limits
<long double>::traps
;
424 const bool numeric_limits
<long double>::tinyness_before
;
425 const float_round_style numeric_limits
<long double>::round_style
;