OSDN Git Service

2001-02-26 Phil Edwards <pme@sources.redhat.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / src / limits_generic.cc
1 // Static data members of -*- C++ -*- numeric_limits classes
2
3 // Copyright (C) 2000 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
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 <bits/std_limits.h>
38 namespace std {
39
40     const bool numeric_limits<bool>::is_specialized;
41     const int  numeric_limits<bool>::digits;
42     const int  numeric_limits<bool>::digits10;
43     const bool numeric_limits<bool>::is_signed;
44     const bool numeric_limits<bool>::is_integer;
45     const bool numeric_limits<bool>::is_exact;
46     const int  numeric_limits<bool>::radix;
47     const int  numeric_limits<bool>::min_exponent;
48     const int  numeric_limits<bool>::min_exponent10;
49     const int  numeric_limits<bool>::max_exponent;
50     const int  numeric_limits<bool>::max_exponent10;
51     const bool numeric_limits<bool>::has_infinity;
52     const bool numeric_limits<bool>::has_quiet_NaN;
53     const bool numeric_limits<bool>::has_signaling_NaN;
54     const float_denorm_style numeric_limits<bool>::has_denorm;
55     const bool numeric_limits<bool>::has_denorm_loss;
56     const bool numeric_limits<bool>::is_iec559;
57     const bool numeric_limits<bool>::is_bounded;
58     const bool numeric_limits<bool>::is_modulo;
59     const bool numeric_limits<bool>::traps;
60     const bool numeric_limits<bool>::tinyness_before;
61     const float_round_style numeric_limits<bool>::round_style;
62
63     const bool numeric_limits<char>::is_specialized;
64     const int  numeric_limits<char>::digits;
65     const int  numeric_limits<char>::digits10;
66     const bool numeric_limits<char>::is_signed;
67     const bool numeric_limits<char>::is_integer;
68     const bool numeric_limits<char>::is_exact;
69     const int  numeric_limits<char>::radix;
70     const int  numeric_limits<char>::min_exponent;
71     const int  numeric_limits<char>::min_exponent10;
72     const int  numeric_limits<char>::max_exponent;
73     const int  numeric_limits<char>::max_exponent10;
74     const bool numeric_limits<char>::has_infinity;
75     const bool numeric_limits<char>::has_quiet_NaN;
76     const bool numeric_limits<char>::has_signaling_NaN;
77     const float_denorm_style numeric_limits<char>::has_denorm;
78     const bool numeric_limits<char>::has_denorm_loss;
79     const bool numeric_limits<char>::is_iec559;
80     const bool numeric_limits<char>::is_bounded;
81     const bool numeric_limits<char>::is_modulo;
82     const bool numeric_limits<char>::traps;
83     const bool numeric_limits<char>::tinyness_before;
84     const float_round_style numeric_limits<char>::round_style;
85
86     const bool numeric_limits<signed char>::is_specialized;
87     const int  numeric_limits<signed char>::digits;
88     const int  numeric_limits<signed char>::digits10;
89     const bool numeric_limits<signed char>::is_signed;
90     const bool numeric_limits<signed char>::is_integer;
91     const bool numeric_limits<signed char>::is_exact;
92     const int  numeric_limits<signed char>::radix;
93     const int  numeric_limits<signed char>::min_exponent;
94     const int  numeric_limits<signed char>::min_exponent10;
95     const int  numeric_limits<signed char>::max_exponent;
96     const int  numeric_limits<signed char>::max_exponent10;
97     const bool numeric_limits<signed char>::has_infinity;
98     const bool numeric_limits<signed char>::has_quiet_NaN;
99     const bool numeric_limits<signed char>::has_signaling_NaN;
100     const float_denorm_style numeric_limits<signed char>::has_denorm;
101     const bool numeric_limits<signed char>::has_denorm_loss;
102     const bool numeric_limits<signed char>::is_iec559;
103     const bool numeric_limits<signed char>::is_bounded;
104     const bool numeric_limits<signed char>::is_modulo;
105     const bool numeric_limits<signed char>::traps;
106     const bool numeric_limits<signed char>::tinyness_before;
107     const float_round_style numeric_limits<signed char>::round_style;
108
109     const bool numeric_limits<unsigned char>::is_specialized;
110     const int  numeric_limits<unsigned char>::digits;
111     const int  numeric_limits<unsigned char>::digits10;
112     const bool numeric_limits<unsigned char>::is_signed;
113     const bool numeric_limits<unsigned char>::is_integer;
114     const bool numeric_limits<unsigned char>::is_exact;
115     const int  numeric_limits<unsigned char>::radix;
116     const int  numeric_limits<unsigned char>::min_exponent;
117     const int  numeric_limits<unsigned char>::min_exponent10;
118     const int  numeric_limits<unsigned char>::max_exponent;
119     const int  numeric_limits<unsigned char>::max_exponent10;
120     const bool numeric_limits<unsigned char>::has_infinity;
121     const bool numeric_limits<unsigned char>::has_quiet_NaN;
122     const bool numeric_limits<unsigned char>::has_signaling_NaN;
123     const float_denorm_style numeric_limits<unsigned char>::has_denorm;
124     const bool numeric_limits<unsigned char>::has_denorm_loss;
125     const bool numeric_limits<unsigned char>::is_iec559;
126     const bool numeric_limits<unsigned char>::is_bounded;
127     const bool numeric_limits<unsigned char>::is_modulo;
128     const bool numeric_limits<unsigned char>::traps;
129     const bool numeric_limits<unsigned char>::tinyness_before;
130     const float_round_style numeric_limits<unsigned char>::round_style;
131
132     const bool numeric_limits<short>::is_specialized;
133     const int  numeric_limits<short>::digits;
134     const int  numeric_limits<short>::digits10;
135     const bool numeric_limits<short>::is_signed;
136     const bool numeric_limits<short>::is_integer;
137     const bool numeric_limits<short>::is_exact;
138     const int  numeric_limits<short>::radix;
139     const int  numeric_limits<short>::min_exponent;
140     const int  numeric_limits<short>::min_exponent10;
141     const int  numeric_limits<short>::max_exponent;
142     const int  numeric_limits<short>::max_exponent10;
143     const bool numeric_limits<short>::has_infinity;
144     const bool numeric_limits<short>::has_quiet_NaN;
145     const bool numeric_limits<short>::has_signaling_NaN;
146     const float_denorm_style numeric_limits<short>::has_denorm;
147     const bool numeric_limits<short>::has_denorm_loss;
148     const bool numeric_limits<short>::is_iec559;
149     const bool numeric_limits<short>::is_bounded;
150     const bool numeric_limits<short>::is_modulo;
151     const bool numeric_limits<short>::traps;
152     const bool numeric_limits<short>::tinyness_before;
153     const float_round_style numeric_limits<short>::round_style;
154
155     const bool numeric_limits<unsigned short>::is_specialized;
156     const int  numeric_limits<unsigned short>::digits;
157     const int  numeric_limits<unsigned short>::digits10;
158     const bool numeric_limits<unsigned short>::is_signed;
159     const bool numeric_limits<unsigned short>::is_integer;
160     const bool numeric_limits<unsigned short>::is_exact;
161     const int  numeric_limits<unsigned short>::radix;
162     const int  numeric_limits<unsigned short>::min_exponent;
163     const int  numeric_limits<unsigned short>::min_exponent10;
164     const int  numeric_limits<unsigned short>::max_exponent;
165     const int  numeric_limits<unsigned short>::max_exponent10;
166     const bool numeric_limits<unsigned short>::has_infinity;
167     const bool numeric_limits<unsigned short>::has_quiet_NaN;
168     const bool numeric_limits<unsigned short>::has_signaling_NaN;
169     const float_denorm_style numeric_limits<unsigned short>::has_denorm;
170     const bool numeric_limits<unsigned short>::has_denorm_loss;
171     const bool numeric_limits<unsigned short>::is_iec559;
172     const bool numeric_limits<unsigned short>::is_bounded;
173     const bool numeric_limits<unsigned short>::is_modulo;
174     const bool numeric_limits<unsigned short>::traps;
175     const bool numeric_limits<unsigned short>::tinyness_before;
176     const float_round_style numeric_limits<unsigned short>::round_style;
177
178     const bool numeric_limits<int>::is_specialized;
179     const int  numeric_limits<int>::digits;
180     const int  numeric_limits<int>::digits10;
181     const bool numeric_limits<int>::is_signed;
182     const bool numeric_limits<int>::is_integer;
183     const bool numeric_limits<int>::is_exact;
184     const int  numeric_limits<int>::radix;
185     const int  numeric_limits<int>::min_exponent;
186     const int  numeric_limits<int>::min_exponent10;
187     const int  numeric_limits<int>::max_exponent;
188     const int  numeric_limits<int>::max_exponent10;
189     const bool numeric_limits<int>::has_infinity;
190     const bool numeric_limits<int>::has_quiet_NaN;
191     const bool numeric_limits<int>::has_signaling_NaN;
192     const float_denorm_style numeric_limits<int>::has_denorm;
193     const bool numeric_limits<int>::has_denorm_loss;
194     const bool numeric_limits<int>::is_iec559;
195     const bool numeric_limits<int>::is_bounded;
196     const bool numeric_limits<int>::is_modulo;
197     const bool numeric_limits<int>::traps;
198     const bool numeric_limits<int>::tinyness_before;
199     const float_round_style numeric_limits<int>::round_style;
200
201     const bool numeric_limits<unsigned int>::is_specialized;
202     const int  numeric_limits<unsigned int>::digits;
203     const int  numeric_limits<unsigned int>::digits10;
204     const bool numeric_limits<unsigned int>::is_signed;
205     const bool numeric_limits<unsigned int>::is_integer;
206     const bool numeric_limits<unsigned int>::is_exact;
207     const int  numeric_limits<unsigned int>::radix;
208     const int  numeric_limits<unsigned int>::min_exponent;
209     const int  numeric_limits<unsigned int>::min_exponent10;
210     const int  numeric_limits<unsigned int>::max_exponent;
211     const int  numeric_limits<unsigned int>::max_exponent10;
212     const bool numeric_limits<unsigned int>::has_infinity;
213     const bool numeric_limits<unsigned int>::has_quiet_NaN;
214     const bool numeric_limits<unsigned int>::has_signaling_NaN;
215     const float_denorm_style numeric_limits<unsigned int>::has_denorm;
216     const bool numeric_limits<unsigned int>::has_denorm_loss;
217     const bool numeric_limits<unsigned int>::is_iec559;
218     const bool numeric_limits<unsigned int>::is_bounded;
219     const bool numeric_limits<unsigned int>::is_modulo;
220     const bool numeric_limits<unsigned int>::traps;
221     const bool numeric_limits<unsigned int>::tinyness_before;
222     const float_round_style numeric_limits<unsigned int>::round_style;
223
224     const bool numeric_limits<long>::is_specialized;
225     const int  numeric_limits<long>::digits;
226     const int  numeric_limits<long>::digits10;
227     const bool numeric_limits<long>::is_signed;
228     const bool numeric_limits<long>::is_integer;
229     const bool numeric_limits<long>::is_exact;
230     const int  numeric_limits<long>::radix;
231     const int  numeric_limits<long>::min_exponent;
232     const int  numeric_limits<long>::min_exponent10;
233     const int  numeric_limits<long>::max_exponent;
234     const int  numeric_limits<long>::max_exponent10;
235     const bool numeric_limits<long>::has_infinity;
236     const bool numeric_limits<long>::has_quiet_NaN;
237     const bool numeric_limits<long>::has_signaling_NaN;
238     const float_denorm_style numeric_limits<long>::has_denorm;
239     const bool numeric_limits<long>::has_denorm_loss;
240     const bool numeric_limits<long>::is_iec559;
241     const bool numeric_limits<long>::is_bounded;
242     const bool numeric_limits<long>::is_modulo;
243     const bool numeric_limits<long>::traps;
244     const bool numeric_limits<long>::tinyness_before;
245     const float_round_style numeric_limits<long>::round_style;
246
247     const bool numeric_limits<unsigned long>::is_specialized;
248     const int  numeric_limits<unsigned long>::digits;
249     const int  numeric_limits<unsigned long>::digits10;
250     const bool numeric_limits<unsigned long>::is_signed;
251     const bool numeric_limits<unsigned long>::is_integer;
252     const bool numeric_limits<unsigned long>::is_exact;
253     const int  numeric_limits<unsigned long>::radix;
254     const int  numeric_limits<unsigned long>::min_exponent;
255     const int  numeric_limits<unsigned long>::min_exponent10;
256     const int  numeric_limits<unsigned long>::max_exponent;
257     const int  numeric_limits<unsigned long>::max_exponent10;
258     const bool numeric_limits<unsigned long>::has_infinity;
259     const bool numeric_limits<unsigned long>::has_quiet_NaN;
260     const bool numeric_limits<unsigned long>::has_signaling_NaN;
261     const float_denorm_style numeric_limits<unsigned long>::has_denorm;
262     const bool numeric_limits<unsigned long>::has_denorm_loss;
263     const bool numeric_limits<unsigned long>::is_iec559;
264     const bool numeric_limits<unsigned long>::is_bounded;
265     const bool numeric_limits<unsigned long>::is_modulo;
266     const bool numeric_limits<unsigned long>::traps;
267     const bool numeric_limits<unsigned long>::tinyness_before;
268     const float_round_style numeric_limits<unsigned long>::round_style;
269
270     const bool numeric_limits<float>::is_specialized;
271     const int  numeric_limits<float>::digits;
272     const int  numeric_limits<float>::digits10;
273     const bool numeric_limits<float>::is_signed;
274     const bool numeric_limits<float>::is_integer;
275     const bool numeric_limits<float>::is_exact;
276     const int  numeric_limits<float>::radix;
277     const int  numeric_limits<float>::min_exponent;
278     const int  numeric_limits<float>::min_exponent10;
279     const int  numeric_limits<float>::max_exponent;
280     const int  numeric_limits<float>::max_exponent10;
281     const bool numeric_limits<float>::has_infinity;
282     const bool numeric_limits<float>::has_quiet_NaN;
283     const bool numeric_limits<float>::has_signaling_NaN;
284     const float_denorm_style numeric_limits<float>::has_denorm;
285     const bool numeric_limits<float>::has_denorm_loss;
286     const bool numeric_limits<float>::is_iec559;
287     const bool numeric_limits<float>::is_bounded;
288     const bool numeric_limits<float>::is_modulo;
289     const bool numeric_limits<float>::traps;
290     const bool numeric_limits<float>::tinyness_before;
291     const float_round_style numeric_limits<float>::round_style;
292
293     const bool numeric_limits<double>::is_specialized;
294     const int  numeric_limits<double>::digits;
295     const int  numeric_limits<double>::digits10;
296     const bool numeric_limits<double>::is_signed;
297     const bool numeric_limits<double>::is_integer;
298     const bool numeric_limits<double>::is_exact;
299     const int  numeric_limits<double>::radix;
300     const int  numeric_limits<double>::min_exponent;
301     const int  numeric_limits<double>::min_exponent10;
302     const int  numeric_limits<double>::max_exponent;
303     const int  numeric_limits<double>::max_exponent10;
304     const bool numeric_limits<double>::has_infinity;
305     const bool numeric_limits<double>::has_quiet_NaN;
306     const bool numeric_limits<double>::has_signaling_NaN;
307     const float_denorm_style numeric_limits<double>::has_denorm;
308     const bool numeric_limits<double>::has_denorm_loss;
309     const bool numeric_limits<double>::is_iec559;
310     const bool numeric_limits<double>::is_bounded;
311     const bool numeric_limits<double>::is_modulo;
312     const bool numeric_limits<double>::traps;
313     const bool numeric_limits<double>::tinyness_before;
314     const float_round_style numeric_limits<double>::round_style;
315
316     const bool numeric_limits<long double>::is_specialized;
317     const int  numeric_limits<long double>::digits;
318     const int  numeric_limits<long double>::digits10;
319     const bool numeric_limits<long double>::is_signed;
320     const bool numeric_limits<long double>::is_integer;
321     const bool numeric_limits<long double>::is_exact;
322     const int  numeric_limits<long double>::radix;
323     const int  numeric_limits<long double>::min_exponent;
324     const int  numeric_limits<long double>::min_exponent10;
325     const int  numeric_limits<long double>::max_exponent;
326     const int  numeric_limits<long double>::max_exponent10;
327     const bool numeric_limits<long double>::has_infinity;
328     const bool numeric_limits<long double>::has_quiet_NaN;
329     const bool numeric_limits<long double>::has_signaling_NaN;
330     const float_denorm_style numeric_limits<long double>::has_denorm;
331     const bool numeric_limits<long double>::has_denorm_loss;
332     const bool numeric_limits<long double>::is_iec559;
333     const bool numeric_limits<long double>::is_bounded;
334     const bool numeric_limits<long double>::is_modulo;
335     const bool numeric_limits<long double>::traps;
336     const bool numeric_limits<long double>::tinyness_before;
337     const float_round_style numeric_limits<long double>::round_style;
338 } // namespace std
339
340