1// Static data members of -*- C++ -*- numeric_limits classes
2
3// Copyright (C) 1999, 2001, 2002, 2005, 2006 Free Software Foundation, Inc.
4//
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)
9// any later version.
10
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.
15
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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19// USA.
20
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.
29
30// Written by Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr>
31
32//
33// ISO C++ 14882:1998
34// 18.2.1
35//
36
37#include <limits>
38
39_GLIBCXX_BEGIN_NAMESPACE(std)
40
41  const bool __numeric_limits_base::is_specialized;
42  const int  __numeric_limits_base::digits;
43  const int  __numeric_limits_base::digits10;
44  const bool __numeric_limits_base::is_signed;
45  const bool __numeric_limits_base::is_integer;
46  const bool __numeric_limits_base::is_exact;
47  const int  __numeric_limits_base::radix;
48  const int  __numeric_limits_base::min_exponent;
49  const int  __numeric_limits_base::min_exponent10;
50  const int  __numeric_limits_base::max_exponent;
51  const int  __numeric_limits_base::max_exponent10;
52  const bool __numeric_limits_base::has_infinity;
53  const bool __numeric_limits_base::has_quiet_NaN;
54  const bool __numeric_limits_base::has_signaling_NaN;
55  const float_denorm_style __numeric_limits_base::has_denorm;
56  const bool __numeric_limits_base::has_denorm_loss;
57  const bool __numeric_limits_base::is_iec559;
58  const bool __numeric_limits_base::is_bounded;
59  const bool __numeric_limits_base::is_modulo;
60  const bool __numeric_limits_base::traps;
61  const bool __numeric_limits_base::tinyness_before;
62  const float_round_style __numeric_limits_base::round_style;
63
64  // bool
65  const bool numeric_limits<bool>::is_specialized;
66  const int  numeric_limits<bool>::digits;
67  const int  numeric_limits<bool>::digits10;
68  const bool numeric_limits<bool>::is_signed;
69  const bool numeric_limits<bool>::is_integer;
70  const bool numeric_limits<bool>::is_exact;
71  const int  numeric_limits<bool>::radix;
72  const int  numeric_limits<bool>::min_exponent;
73  const int  numeric_limits<bool>::min_exponent10;
74  const int  numeric_limits<bool>::max_exponent;
75  const int  numeric_limits<bool>::max_exponent10;
76  const bool numeric_limits<bool>::has_infinity;
77  const bool numeric_limits<bool>::has_quiet_NaN;
78  const bool numeric_limits<bool>::has_signaling_NaN;
79  const float_denorm_style numeric_limits<bool>::has_denorm;
80  const bool numeric_limits<bool>::has_denorm_loss;
81  const bool numeric_limits<bool>::is_iec559;
82  const bool numeric_limits<bool>::is_bounded;
83  const bool numeric_limits<bool>::is_modulo;
84  const bool numeric_limits<bool>::traps;
85  const bool numeric_limits<bool>::tinyness_before;
86  const float_round_style numeric_limits<bool>::round_style;
87
88  // char
89  const bool numeric_limits<char>::is_specialized;
90  const int  numeric_limits<char>::digits;
91  const int  numeric_limits<char>::digits10;
92  const bool numeric_limits<char>::is_signed;
93  const bool numeric_limits<char>::is_integer;
94  const bool numeric_limits<char>::is_exact;
95  const int  numeric_limits<char>::radix;
96  const int  numeric_limits<char>::min_exponent;
97  const int  numeric_limits<char>::min_exponent10;
98  const int  numeric_limits<char>::max_exponent;
99  const int  numeric_limits<char>::max_exponent10;
100  const bool numeric_limits<char>::has_infinity;
101  const bool numeric_limits<char>::has_quiet_NaN;
102  const bool numeric_limits<char>::has_signaling_NaN;
103  const float_denorm_style numeric_limits<char>::has_denorm;
104  const bool numeric_limits<char>::has_denorm_loss;
105  const bool numeric_limits<char>::is_iec559;
106  const bool numeric_limits<char>::is_bounded;
107  const bool numeric_limits<char>::is_modulo;
108  const bool numeric_limits<char>::traps;
109  const bool numeric_limits<char>::tinyness_before;
110  const float_round_style numeric_limits<char>::round_style;
111
112  // signed char
113  const bool numeric_limits<signed char>::is_specialized;
114  const int  numeric_limits<signed char>::digits;
115  const int  numeric_limits<signed char>::digits10;
116  const bool numeric_limits<signed char>::is_signed;
117  const bool numeric_limits<signed char>::is_integer;
118  const bool numeric_limits<signed char>::is_exact;
119  const int  numeric_limits<signed char>::radix;
120  const int  numeric_limits<signed char>::min_exponent;
121  const int  numeric_limits<signed char>::min_exponent10;
122  const int  numeric_limits<signed char>::max_exponent;
123  const int  numeric_limits<signed char>::max_exponent10;
124  const bool numeric_limits<signed char>::has_infinity;
125  const bool numeric_limits<signed char>::has_quiet_NaN;
126  const bool numeric_limits<signed char>::has_signaling_NaN;
127  const float_denorm_style numeric_limits<signed char>::has_denorm;
128  const bool numeric_limits<signed char>::has_denorm_loss;
129  const bool numeric_limits<signed char>::is_iec559;
130  const bool numeric_limits<signed char>::is_bounded;
131  const bool numeric_limits<signed char>::is_modulo;
132  const bool numeric_limits<signed char>::traps;
133  const bool numeric_limits<signed char>::tinyness_before;
134  const float_round_style numeric_limits<signed char>::round_style;
135
136  // unsigned char
137  const bool numeric_limits<unsigned char>::is_specialized;
138  const int  numeric_limits<unsigned char>::digits;
139  const int  numeric_limits<unsigned char>::digits10;
140  const bool numeric_limits<unsigned char>::is_signed;
141  const bool numeric_limits<unsigned char>::is_integer;
142  const bool numeric_limits<unsigned char>::is_exact;
143  const int  numeric_limits<unsigned char>::radix;
144  const int  numeric_limits<unsigned char>::min_exponent;
145  const int  numeric_limits<unsigned char>::min_exponent10;
146  const int  numeric_limits<unsigned char>::max_exponent;
147  const int  numeric_limits<unsigned char>::max_exponent10;
148  const bool numeric_limits<unsigned char>::has_infinity;
149  const bool numeric_limits<unsigned char>::has_quiet_NaN;
150  const bool numeric_limits<unsigned char>::has_signaling_NaN;
151  const float_denorm_style numeric_limits<unsigned char>::has_denorm;
152  const bool numeric_limits<unsigned char>::has_denorm_loss;
153  const bool numeric_limits<unsigned char>::is_iec559;
154  const bool numeric_limits<unsigned char>::is_bounded;
155  const bool numeric_limits<unsigned char>::is_modulo;
156  const bool numeric_limits<unsigned char>::traps;
157  const bool numeric_limits<unsigned char>::tinyness_before;
158  const float_round_style numeric_limits<unsigned char>::round_style;
159
160  // wchar_t
161  // This used to be problematic...
162#ifdef _GLIBCXX_USE_WCHAR_T
163  const bool numeric_limits<wchar_t>::is_specialized;
164  const int  numeric_limits<wchar_t>::digits;
165  const int  numeric_limits<wchar_t>::digits10;
166  const bool numeric_limits<wchar_t>::is_signed;
167  const bool numeric_limits<wchar_t>::is_integer;
168  const bool numeric_limits<wchar_t>::is_exact;
169  const int  numeric_limits<wchar_t>::radix;
170  const int  numeric_limits<wchar_t>::min_exponent;
171  const int  numeric_limits<wchar_t>::min_exponent10;
172  const int  numeric_limits<wchar_t>::max_exponent;
173  const int  numeric_limits<wchar_t>::max_exponent10;
174  const bool numeric_limits<wchar_t>::has_infinity;
175  const bool numeric_limits<wchar_t>::has_quiet_NaN;
176  const bool numeric_limits<wchar_t>::has_signaling_NaN;
177  const float_denorm_style numeric_limits<wchar_t>::has_denorm;
178  const bool numeric_limits<wchar_t>::has_denorm_loss;
179  const bool numeric_limits<wchar_t>::is_iec559;
180  const bool numeric_limits<wchar_t>::is_bounded;
181  const bool numeric_limits<wchar_t>::is_modulo;
182  const bool numeric_limits<wchar_t>::traps;
183  const bool numeric_limits<wchar_t>::tinyness_before;
184  const float_round_style numeric_limits<wchar_t>::round_style;
185#endif // _GLIBCXX_USE_WCHAR_T
186
187  // short
188  const bool numeric_limits<short>::is_specialized;
189  const int  numeric_limits<short>::digits;
190  const int  numeric_limits<short>::digits10;
191  const bool numeric_limits<short>::is_signed;
192  const bool numeric_limits<short>::is_integer;
193  const bool numeric_limits<short>::is_exact;
194  const int  numeric_limits<short>::radix;
195  const int  numeric_limits<short>::min_exponent;
196  const int  numeric_limits<short>::min_exponent10;
197  const int  numeric_limits<short>::max_exponent;
198  const int  numeric_limits<short>::max_exponent10;
199  const bool numeric_limits<short>::has_infinity;
200  const bool numeric_limits<short>::has_quiet_NaN;
201  const bool numeric_limits<short>::has_signaling_NaN;
202  const float_denorm_style numeric_limits<short>::has_denorm;
203  const bool numeric_limits<short>::has_denorm_loss;
204  const bool numeric_limits<short>::is_iec559;
205  const bool numeric_limits<short>::is_bounded;
206  const bool numeric_limits<short>::is_modulo;
207  const bool numeric_limits<short>::traps;
208  const bool numeric_limits<short>::tinyness_before;
209  const float_round_style numeric_limits<short>::round_style;
210
211  // unsigned short
212  const bool numeric_limits<unsigned short>::is_specialized;
213  const int  numeric_limits<unsigned short>::digits;
214  const int  numeric_limits<unsigned short>::digits10;
215  const bool numeric_limits<unsigned short>::is_signed;
216  const bool numeric_limits<unsigned short>::is_integer;
217  const bool numeric_limits<unsigned short>::is_exact;
218  const int  numeric_limits<unsigned short>::radix;
219  const int  numeric_limits<unsigned short>::min_exponent;
220  const int  numeric_limits<unsigned short>::min_exponent10;
221  const int  numeric_limits<unsigned short>::max_exponent;
222  const int  numeric_limits<unsigned short>::max_exponent10;
223  const bool numeric_limits<unsigned short>::has_infinity;
224  const bool numeric_limits<unsigned short>::has_quiet_NaN;
225  const bool numeric_limits<unsigned short>::has_signaling_NaN;
226  const float_denorm_style numeric_limits<unsigned short>::has_denorm;
227  const bool numeric_limits<unsigned short>::has_denorm_loss;
228  const bool numeric_limits<unsigned short>::is_iec559;
229  const bool numeric_limits<unsigned short>::is_bounded;
230  const bool numeric_limits<unsigned short>::is_modulo;
231  const bool numeric_limits<unsigned short>::traps;
232  const bool numeric_limits<unsigned short>::tinyness_before;
233  const float_round_style numeric_limits<unsigned short>::round_style;
234
235  // int
236  const bool numeric_limits<int>::is_specialized;
237  const int  numeric_limits<int>::digits;
238  const int  numeric_limits<int>::digits10;
239  const bool numeric_limits<int>::is_signed;
240  const bool numeric_limits<int>::is_integer;
241  const bool numeric_limits<int>::is_exact;
242  const int  numeric_limits<int>::radix;
243  const int  numeric_limits<int>::min_exponent;
244  const int  numeric_limits<int>::min_exponent10;
245  const int  numeric_limits<int>::max_exponent;
246  const int  numeric_limits<int>::max_exponent10;
247  const bool numeric_limits<int>::has_infinity;
248  const bool numeric_limits<int>::has_quiet_NaN;
249  const bool numeric_limits<int>::has_signaling_NaN;
250  const float_denorm_style numeric_limits<int>::has_denorm;
251  const bool numeric_limits<int>::has_denorm_loss;
252  const bool numeric_limits<int>::is_iec559;
253  const bool numeric_limits<int>::is_bounded;
254  const bool numeric_limits<int>::is_modulo;
255  const bool numeric_limits<int>::traps;
256  const bool numeric_limits<int>::tinyness_before;
257  const float_round_style numeric_limits<int>::round_style;
258
259  // unsigned int
260  const bool numeric_limits<unsigned int>::is_specialized;
261  const int  numeric_limits<unsigned int>::digits;
262  const int  numeric_limits<unsigned int>::digits10;
263  const bool numeric_limits<unsigned int>::is_signed;
264  const bool numeric_limits<unsigned int>::is_integer;
265  const bool numeric_limits<unsigned int>::is_exact;
266  const int  numeric_limits<unsigned int>::radix;
267  const int  numeric_limits<unsigned int>::min_exponent;
268  const int  numeric_limits<unsigned int>::min_exponent10;
269  const int  numeric_limits<unsigned int>::max_exponent;
270  const int  numeric_limits<unsigned int>::max_exponent10;
271  const bool numeric_limits<unsigned int>::has_infinity;
272  const bool numeric_limits<unsigned int>::has_quiet_NaN;
273  const bool numeric_limits<unsigned int>::has_signaling_NaN;
274  const float_denorm_style numeric_limits<unsigned int>::has_denorm;
275  const bool numeric_limits<unsigned int>::has_denorm_loss;
276  const bool numeric_limits<unsigned int>::is_iec559;
277  const bool numeric_limits<unsigned int>::is_bounded;
278  const bool numeric_limits<unsigned int>::is_modulo;
279  const bool numeric_limits<unsigned int>::traps;
280  const bool numeric_limits<unsigned int>::tinyness_before;
281  const float_round_style numeric_limits<unsigned int>::round_style;
282
283  // long
284  const bool numeric_limits<long>::is_specialized;
285  const int  numeric_limits<long>::digits;
286  const int  numeric_limits<long>::digits10;
287  const bool numeric_limits<long>::is_signed;
288  const bool numeric_limits<long>::is_integer;
289  const bool numeric_limits<long>::is_exact;
290  const int  numeric_limits<long>::radix;
291  const int  numeric_limits<long>::min_exponent;
292  const int  numeric_limits<long>::min_exponent10;
293  const int  numeric_limits<long>::max_exponent;
294  const int  numeric_limits<long>::max_exponent10;
295  const bool numeric_limits<long>::has_infinity;
296  const bool numeric_limits<long>::has_quiet_NaN;
297  const bool numeric_limits<long>::has_signaling_NaN;
298  const float_denorm_style numeric_limits<long>::has_denorm;
299  const bool numeric_limits<long>::has_denorm_loss;
300  const bool numeric_limits<long>::is_iec559;
301  const bool numeric_limits<long>::is_bounded;
302  const bool numeric_limits<long>::is_modulo;
303  const bool numeric_limits<long>::traps;
304  const bool numeric_limits<long>::tinyness_before;
305  const float_round_style numeric_limits<long>::round_style;
306
307  // unsigned long
308  const bool numeric_limits<unsigned long>::is_specialized;
309  const int  numeric_limits<unsigned long>::digits;
310  const int  numeric_limits<unsigned long>::digits10;
311  const bool numeric_limits<unsigned long>::is_signed;
312  const bool numeric_limits<unsigned long>::is_integer;
313  const bool numeric_limits<unsigned long>::is_exact;
314  const int  numeric_limits<unsigned long>::radix;
315  const int  numeric_limits<unsigned long>::min_exponent;
316  const int  numeric_limits<unsigned long>::min_exponent10;
317  const int  numeric_limits<unsigned long>::max_exponent;
318  const int  numeric_limits<unsigned long>::max_exponent10;
319  const bool numeric_limits<unsigned long>::has_infinity;
320  const bool numeric_limits<unsigned long>::has_quiet_NaN;
321  const bool numeric_limits<unsigned long>::has_signaling_NaN;
322  const float_denorm_style numeric_limits<unsigned long>::has_denorm;
323  const bool numeric_limits<unsigned long>::has_denorm_loss;
324  const bool numeric_limits<unsigned long>::is_iec559;
325  const bool numeric_limits<unsigned long>::is_bounded;
326  const bool numeric_limits<unsigned long>::is_modulo;
327  const bool numeric_limits<unsigned long>::traps;
328  const bool numeric_limits<unsigned long>::tinyness_before;
329  const float_round_style numeric_limits<unsigned long>::round_style;
330
331  // NOTA BENE:  long long is an extension
332  const bool numeric_limits<long long>::is_specialized;
333  const int  numeric_limits<long long>::digits;
334  const int  numeric_limits<long long>::digits10;
335  const bool numeric_limits<long long>::is_signed;
336  const bool numeric_limits<long long>::is_integer;
337  const bool numeric_limits<long long>::is_exact;
338  const int  numeric_limits<long long>::radix;
339  const int  numeric_limits<long long>::min_exponent;
340  const int  numeric_limits<long long>::min_exponent10;
341  const int  numeric_limits<long long>::max_exponent;
342  const int  numeric_limits<long long>::max_exponent10;
343  const bool numeric_limits<long long>::has_infinity;
344  const bool numeric_limits<long long>::has_quiet_NaN;
345  const bool numeric_limits<long long>::has_signaling_NaN;
346  const float_denorm_style numeric_limits<long long>::has_denorm;
347  const bool numeric_limits<long long>::has_denorm_loss;
348  const bool numeric_limits<long long>::is_iec559;
349  const bool numeric_limits<long long>::is_bounded;
350  const bool numeric_limits<long long>::is_modulo;
351  const bool numeric_limits<long long>::traps;
352  const bool numeric_limits<long long>::tinyness_before;
353  const float_round_style numeric_limits<long long>::round_style;
354
355  const bool numeric_limits<unsigned long long>::is_specialized;
356  const int  numeric_limits<unsigned long long>::digits;
357  const int  numeric_limits<unsigned long long>::digits10;
358  const bool numeric_limits<unsigned long long>::is_signed;
359  const bool numeric_limits<unsigned long long>::is_integer;
360  const bool numeric_limits<unsigned long long>::is_exact;
361  const int  numeric_limits<unsigned long long>::radix;
362  const int  numeric_limits<unsigned long long>::min_exponent;
363  const int  numeric_limits<unsigned long long>::min_exponent10;
364  const int  numeric_limits<unsigned long long>::max_exponent;
365  const int  numeric_limits<unsigned long long>::max_exponent10;
366  const bool numeric_limits<unsigned long long>::has_infinity;
367  const bool numeric_limits<unsigned long long>::has_quiet_NaN;
368  const bool numeric_limits<unsigned long long>::has_signaling_NaN;
369  const float_denorm_style numeric_limits<unsigned long long>::has_denorm;
370  const bool numeric_limits<unsigned long long>::has_denorm_loss;
371  const bool numeric_limits<unsigned long long>::is_iec559;
372  const bool numeric_limits<unsigned long long>::is_bounded;
373  const bool numeric_limits<unsigned long long>::is_modulo;
374  const bool numeric_limits<unsigned long long>::traps;
375  const bool numeric_limits<unsigned long long>::tinyness_before;
376  const float_round_style numeric_limits<unsigned long long>::round_style;
377
378  // float
379  const bool numeric_limits<float>::is_specialized;
380  const int  numeric_limits<float>::digits;
381  const int  numeric_limits<float>::digits10;
382  const bool numeric_limits<float>::is_signed;
383  const bool numeric_limits<float>::is_integer;
384  const bool numeric_limits<float>::is_exact;
385  const int  numeric_limits<float>::radix;
386  const int  numeric_limits<float>::min_exponent;
387  const int  numeric_limits<float>::min_exponent10;
388  const int  numeric_limits<float>::max_exponent;
389  const int  numeric_limits<float>::max_exponent10;
390  const bool numeric_limits<float>::has_infinity;
391  const bool numeric_limits<float>::has_quiet_NaN;
392  const bool numeric_limits<float>::has_signaling_NaN;
393  const float_denorm_style numeric_limits<float>::has_denorm;
394  const bool numeric_limits<float>::has_denorm_loss;
395  const bool numeric_limits<float>::is_iec559;
396  const bool numeric_limits<float>::is_bounded;
397  const bool numeric_limits<float>::is_modulo;
398  const bool numeric_limits<float>::traps;
399  const bool numeric_limits<float>::tinyness_before;
400  const float_round_style numeric_limits<float>::round_style;
401
402  // double
403  const bool numeric_limits<double>::is_specialized;
404  const int  numeric_limits<double>::digits;
405  const int  numeric_limits<double>::digits10;
406  const bool numeric_limits<double>::is_signed;
407  const bool numeric_limits<double>::is_integer;
408  const bool numeric_limits<double>::is_exact;
409  const int  numeric_limits<double>::radix;
410  const int  numeric_limits<double>::min_exponent;
411  const int  numeric_limits<double>::min_exponent10;
412  const int  numeric_limits<double>::max_exponent;
413  const int  numeric_limits<double>::max_exponent10;
414  const bool numeric_limits<double>::has_infinity;
415  const bool numeric_limits<double>::has_quiet_NaN;
416  const bool numeric_limits<double>::has_signaling_NaN;
417  const float_denorm_style numeric_limits<double>::has_denorm;
418  const bool numeric_limits<double>::has_denorm_loss;
419  const bool numeric_limits<double>::is_iec559;
420  const bool numeric_limits<double>::is_bounded;
421  const bool numeric_limits<double>::is_modulo;
422  const bool numeric_limits<double>::traps;
423  const bool numeric_limits<double>::tinyness_before;
424  const float_round_style numeric_limits<double>::round_style;
425
426  // long double
427  const bool numeric_limits<long double>::is_specialized;
428  const int  numeric_limits<long double>::digits;
429  const int  numeric_limits<long double>::digits10;
430  const bool numeric_limits<long double>::is_signed;
431  const bool numeric_limits<long double>::is_integer;
432  const bool numeric_limits<long double>::is_exact;
433  const int  numeric_limits<long double>::radix;
434  const int  numeric_limits<long double>::min_exponent;
435  const int  numeric_limits<long double>::min_exponent10;
436  const int  numeric_limits<long double>::max_exponent;
437  const int  numeric_limits<long double>::max_exponent10;
438  const bool numeric_limits<long double>::has_infinity;
439  const bool numeric_limits<long double>::has_quiet_NaN;
440  const bool numeric_limits<long double>::has_signaling_NaN;
441  const float_denorm_style numeric_limits<long double>::has_denorm;
442  const bool numeric_limits<long double>::has_denorm_loss;
443  const bool numeric_limits<long double>::is_iec559;
444  const bool numeric_limits<long double>::is_bounded;
445  const bool numeric_limits<long double>::is_modulo;
446  const bool numeric_limits<long double>::traps;
447  const bool numeric_limits<long double>::tinyness_before;
448  const float_round_style numeric_limits<long double>::round_style;
449
450_GLIBCXX_END_NAMESPACE
451
452// XXX GLIBCXX_ABI Deprecated
453#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
454
455#define _GLIBCXX_NUM_LIM_COMPAT(type, member, len) \
456  extern "C" type _ZNSt14numeric_limitsIeE ## len ## member ## E \
457  __attribute__ ((alias ("_ZNSt14numeric_limitsIdE" #len #member "E")))
458_GLIBCXX_NUM_LIM_COMPAT (bool, is_specialized, 14);
459_GLIBCXX_NUM_LIM_COMPAT (int, digits, 6);
460_GLIBCXX_NUM_LIM_COMPAT (int, digits10, 8);
461_GLIBCXX_NUM_LIM_COMPAT (bool, is_signed, 9);
462_GLIBCXX_NUM_LIM_COMPAT (bool, is_integer, 10);
463_GLIBCXX_NUM_LIM_COMPAT (bool, is_exact, 8);
464_GLIBCXX_NUM_LIM_COMPAT (int, radix, 5);
465_GLIBCXX_NUM_LIM_COMPAT (int, min_exponent, 12);
466_GLIBCXX_NUM_LIM_COMPAT (int, min_exponent10, 14);
467_GLIBCXX_NUM_LIM_COMPAT (int, max_exponent, 12);
468_GLIBCXX_NUM_LIM_COMPAT (int, max_exponent10, 14);
469_GLIBCXX_NUM_LIM_COMPAT (bool, has_infinity, 12);
470_GLIBCXX_NUM_LIM_COMPAT (bool, has_quiet_NaN, 13);
471_GLIBCXX_NUM_LIM_COMPAT (bool, has_signaling_NaN, 17);
472_GLIBCXX_NUM_LIM_COMPAT (std::float_denorm_style, has_denorm, 10);
473_GLIBCXX_NUM_LIM_COMPAT (bool, has_denorm_loss, 15);
474_GLIBCXX_NUM_LIM_COMPAT (bool, is_iec559, 9);
475_GLIBCXX_NUM_LIM_COMPAT (bool, is_bounded, 10);
476_GLIBCXX_NUM_LIM_COMPAT (bool, is_modulo, 9);
477_GLIBCXX_NUM_LIM_COMPAT (bool, traps, 5);
478_GLIBCXX_NUM_LIM_COMPAT (bool, tinyness_before, 15);
479_GLIBCXX_NUM_LIM_COMPAT (std::float_round_style, round_style, 11);
480
481#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
482