Whole document tree
    

Whole document tree

limits.cc Source File
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

limits.cc

Go to the documentation of this file.
00001 // Static data members of -*- C++ -*- numeric_limits classes
00002 
00003 // Copyright (C) 1999, 2001 Free Software Foundation, Inc.
00004 //
00005 // This file is part of the GNU ISO C++ Library.  This library is free
00006 // software; you can redistribute it and/or modify it under the
00007 // terms of the GNU General Public License as published by the
00008 // Free Software Foundation; either version 2, or (at your option)
00009 // any later version.
00010 
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 // GNU General Public License for more details.
00015 
00016 // You should have received a copy of the GNU General Public License along
00017 // with this library; see the file COPYING.  If not, write to the Free
00018 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
00019 // USA.
00020 
00021 // As a special exception, you may use this file as part of a free software
00022 // library without restriction.  Specifically, if other files instantiate
00023 // templates or use macros or inline functions from this file, or you compile
00024 // this file and link it with other files to produce an executable, this
00025 // file does not by itself cause the resulting executable to be covered by
00026 // the GNU General Public License.  This exception does not however
00027 // invalidate any other reasons why the executable file might be covered by
00028 // the GNU General Public License.
00029 
00030 // Written by Gabriel Dos Reis <Gabriel.Dos-Reis@cmla.ens-cachan.fr>
00031 
00032 //
00033 // ISO C++ 14882:1998
00034 // 18.2.1
00035 //
00036 
00037 #include <bits/std_limits.h>
00038 namespace std 
00039 {
00040   // bool
00041   const bool numeric_limits<bool>::is_specialized;
00042   const int  numeric_limits<bool>::digits;
00043   const int  numeric_limits<bool>::digits10;
00044   const bool numeric_limits<bool>::is_signed;
00045   const bool numeric_limits<bool>::is_integer;
00046   const bool numeric_limits<bool>::is_exact;
00047   const int  numeric_limits<bool>::radix;
00048   const int  numeric_limits<bool>::min_exponent;
00049   const int  numeric_limits<bool>::min_exponent10;
00050   const int  numeric_limits<bool>::max_exponent;
00051   const int  numeric_limits<bool>::max_exponent10;
00052   const bool numeric_limits<bool>::has_infinity;
00053   const bool numeric_limits<bool>::has_quiet_NaN;
00054   const bool numeric_limits<bool>::has_signaling_NaN;
00055   const float_denorm_style numeric_limits<bool>::has_denorm;
00056   const bool numeric_limits<bool>::has_denorm_loss;
00057   const bool numeric_limits<bool>::is_iec559;
00058   const bool numeric_limits<bool>::is_bounded;
00059   const bool numeric_limits<bool>::is_modulo;
00060   const bool numeric_limits<bool>::traps;
00061   const bool numeric_limits<bool>::tinyness_before;
00062   const float_round_style numeric_limits<bool>::round_style;
00063 
00064   // char
00065   const bool numeric_limits<char>::is_specialized;
00066   const int  numeric_limits<char>::digits;
00067   const int  numeric_limits<char>::digits10;
00068   const bool numeric_limits<char>::is_signed;
00069   const bool numeric_limits<char>::is_integer;
00070   const bool numeric_limits<char>::is_exact;
00071   const int  numeric_limits<char>::radix;
00072   const int  numeric_limits<char>::min_exponent;
00073   const int  numeric_limits<char>::min_exponent10;
00074   const int  numeric_limits<char>::max_exponent;
00075   const int  numeric_limits<char>::max_exponent10;
00076   const bool numeric_limits<char>::has_infinity;
00077   const bool numeric_limits<char>::has_quiet_NaN;
00078   const bool numeric_limits<char>::has_signaling_NaN;
00079   const float_denorm_style numeric_limits<char>::has_denorm;
00080   const bool numeric_limits<char>::has_denorm_loss;
00081   const bool numeric_limits<char>::is_iec559;
00082   const bool numeric_limits<char>::is_bounded;
00083   const bool numeric_limits<char>::is_modulo;
00084   const bool numeric_limits<char>::traps;
00085   const bool numeric_limits<char>::tinyness_before;
00086   const float_round_style numeric_limits<char>::round_style;
00087 
00088   // signed char
00089   const bool numeric_limits<signed char>::is_specialized;
00090   const int  numeric_limits<signed char>::digits;
00091   const int  numeric_limits<signed char>::digits10;
00092   const bool numeric_limits<signed char>::is_signed;
00093   const bool numeric_limits<signed char>::is_integer;
00094   const bool numeric_limits<signed char>::is_exact;
00095   const int  numeric_limits<signed char>::radix;
00096   const int  numeric_limits<signed char>::min_exponent;
00097   const int  numeric_limits<signed char>::min_exponent10;
00098   const int  numeric_limits<signed char>::max_exponent;
00099   const int  numeric_limits<signed char>::max_exponent10;
00100   const bool numeric_limits<signed char>::has_infinity;
00101   const bool numeric_limits<signed char>::has_quiet_NaN;
00102   const bool numeric_limits<signed char>::has_signaling_NaN;
00103   const float_denorm_style numeric_limits<signed char>::has_denorm;
00104   const bool numeric_limits<signed char>::has_denorm_loss;
00105   const bool numeric_limits<signed char>::is_iec559;
00106   const bool numeric_limits<signed char>::is_bounded;
00107   const bool numeric_limits<signed char>::is_modulo;
00108   const bool numeric_limits<signed char>::traps;
00109   const bool numeric_limits<signed char>::tinyness_before;
00110   const float_round_style numeric_limits<signed char>::round_style;
00111 
00112   // unsigned char
00113   const bool numeric_limits<unsigned char>::is_specialized;
00114   const int  numeric_limits<unsigned char>::digits;
00115   const int  numeric_limits<unsigned char>::digits10;
00116   const bool numeric_limits<unsigned char>::is_signed;
00117   const bool numeric_limits<unsigned char>::is_integer;
00118   const bool numeric_limits<unsigned char>::is_exact;
00119   const int  numeric_limits<unsigned char>::radix;
00120   const int  numeric_limits<unsigned char>::min_exponent;
00121   const int  numeric_limits<unsigned char>::min_exponent10;
00122   const int  numeric_limits<unsigned char>::max_exponent;
00123   const int  numeric_limits<unsigned char>::max_exponent10;
00124   const bool numeric_limits<unsigned char>::has_infinity;
00125   const bool numeric_limits<unsigned char>::has_quiet_NaN;
00126   const bool numeric_limits<unsigned char>::has_signaling_NaN;
00127   const float_denorm_style numeric_limits<unsigned char>::has_denorm;
00128   const bool numeric_limits<unsigned char>::has_denorm_loss;
00129   const bool numeric_limits<unsigned char>::is_iec559;
00130   const bool numeric_limits<unsigned char>::is_bounded;
00131   const bool numeric_limits<unsigned char>::is_modulo;
00132   const bool numeric_limits<unsigned char>::traps;
00133   const bool numeric_limits<unsigned char>::tinyness_before;
00134   const float_round_style numeric_limits<unsigned char>::round_style;
00135 
00136   // wchar_t
00137   // This used to be problematic...
00138 #ifdef _GLIBCPP_USE_WCHAR_T  
00139   const bool numeric_limits<wchar_t>::is_specialized;
00140   const int  numeric_limits<wchar_t>::digits;
00141   const int  numeric_limits<wchar_t>::digits10;
00142   const bool numeric_limits<wchar_t>::is_signed;
00143   const bool numeric_limits<wchar_t>::is_integer;
00144   const bool numeric_limits<wchar_t>::is_exact;
00145   const int  numeric_limits<wchar_t>::radix;
00146   const int  numeric_limits<wchar_t>::min_exponent;
00147   const int  numeric_limits<wchar_t>::min_exponent10;
00148   const int  numeric_limits<wchar_t>::max_exponent;
00149   const int  numeric_limits<wchar_t>::max_exponent10;
00150   const bool numeric_limits<wchar_t>::has_infinity;
00151   const bool numeric_limits<wchar_t>::has_quiet_NaN;
00152   const bool numeric_limits<wchar_t>::has_signaling_NaN;
00153   const float_denorm_style numeric_limits<wchar_t>::has_denorm;
00154   const bool numeric_limits<wchar_t>::has_denorm_loss;
00155   const bool numeric_limits<wchar_t>::is_iec559;
00156   const bool numeric_limits<wchar_t>::is_bounded;
00157   const bool numeric_limits<wchar_t>::is_modulo;
00158   const bool numeric_limits<wchar_t>::traps;
00159   const bool numeric_limits<wchar_t>::tinyness_before;
00160   const float_round_style numeric_limits<wchar_t>::round_style;
00161 #endif // _GLIBCPP_USE_WCHAR_T
00162 
00163   // short
00164   const bool numeric_limits<short>::is_specialized;
00165   const int  numeric_limits<short>::digits;
00166   const int  numeric_limits<short>::digits10;
00167   const bool numeric_limits<short>::is_signed;
00168   const bool numeric_limits<short>::is_integer;
00169   const bool numeric_limits<short>::is_exact;
00170   const int  numeric_limits<short>::radix;
00171   const int  numeric_limits<short>::min_exponent;
00172   const int  numeric_limits<short>::min_exponent10;
00173   const int  numeric_limits<short>::max_exponent;
00174   const int  numeric_limits<short>::max_exponent10;
00175   const bool numeric_limits<short>::has_infinity;
00176   const bool numeric_limits<short>::has_quiet_NaN;
00177   const bool numeric_limits<short>::has_signaling_NaN;
00178   const float_denorm_style numeric_limits<short>::has_denorm;
00179   const bool numeric_limits<short>::has_denorm_loss;
00180   const bool numeric_limits<short>::is_iec559;
00181   const bool numeric_limits<short>::is_bounded;
00182   const bool numeric_limits<short>::is_modulo;
00183   const bool numeric_limits<short>::traps;
00184   const bool numeric_limits<short>::tinyness_before;
00185   const float_round_style numeric_limits<short>::round_style;
00186 
00187   // unsigned short
00188   const bool numeric_limits<unsigned short>::is_specialized;
00189   const int  numeric_limits<unsigned short>::digits;
00190   const int  numeric_limits<unsigned short>::digits10;
00191   const bool numeric_limits<unsigned short>::is_signed;
00192   const bool numeric_limits<unsigned short>::is_integer;
00193   const bool numeric_limits<unsigned short>::is_exact;
00194   const int  numeric_limits<unsigned short>::radix;
00195   const int  numeric_limits<unsigned short>::min_exponent;
00196   const int  numeric_limits<unsigned short>::min_exponent10;
00197   const int  numeric_limits<unsigned short>::max_exponent;
00198   const int  numeric_limits<unsigned short>::max_exponent10;
00199   const bool numeric_limits<unsigned short>::has_infinity;
00200   const bool numeric_limits<unsigned short>::has_quiet_NaN;
00201   const bool numeric_limits<unsigned short>::has_signaling_NaN;
00202   const float_denorm_style numeric_limits<unsigned short>::has_denorm;
00203   const bool numeric_limits<unsigned short>::has_denorm_loss;
00204   const bool numeric_limits<unsigned short>::is_iec559;
00205   const bool numeric_limits<unsigned short>::is_bounded;
00206   const bool numeric_limits<unsigned short>::is_modulo;
00207   const bool numeric_limits<unsigned short>::traps;
00208   const bool numeric_limits<unsigned short>::tinyness_before;
00209   const float_round_style numeric_limits<unsigned short>::round_style;
00210 
00211   // int
00212   const bool numeric_limits<int>::is_specialized;
00213   const int  numeric_limits<int>::digits;
00214   const int  numeric_limits<int>::digits10;
00215   const bool numeric_limits<int>::is_signed;
00216   const bool numeric_limits<int>::is_integer;
00217   const bool numeric_limits<int>::is_exact;
00218   const int  numeric_limits<int>::radix;
00219   const int  numeric_limits<int>::min_exponent;
00220   const int  numeric_limits<int>::min_exponent10;
00221   const int  numeric_limits<int>::max_exponent;
00222   const int  numeric_limits<int>::max_exponent10;
00223   const bool numeric_limits<int>::has_infinity;
00224   const bool numeric_limits<int>::has_quiet_NaN;
00225   const bool numeric_limits<int>::has_signaling_NaN;
00226   const float_denorm_style numeric_limits<int>::has_denorm;
00227   const bool numeric_limits<int>::has_denorm_loss;
00228   const bool numeric_limits<int>::is_iec559;
00229   const bool numeric_limits<int>::is_bounded;
00230   const bool numeric_limits<int>::is_modulo;
00231   const bool numeric_limits<int>::traps;
00232   const bool numeric_limits<int>::tinyness_before;
00233   const float_round_style numeric_limits<int>::round_style;
00234 
00235   // unsigned int
00236   const bool numeric_limits<unsigned int>::is_specialized;
00237   const int  numeric_limits<unsigned int>::digits;
00238   const int  numeric_limits<unsigned int>::digits10;
00239   const bool numeric_limits<unsigned int>::is_signed;
00240   const bool numeric_limits<unsigned int>::is_integer;
00241   const bool numeric_limits<unsigned int>::is_exact;
00242   const int  numeric_limits<unsigned int>::radix;
00243   const int  numeric_limits<unsigned int>::min_exponent;
00244   const int  numeric_limits<unsigned int>::min_exponent10;
00245   const int  numeric_limits<unsigned int>::max_exponent;
00246   const int  numeric_limits<unsigned int>::max_exponent10;
00247   const bool numeric_limits<unsigned int>::has_infinity;
00248   const bool numeric_limits<unsigned int>::has_quiet_NaN;
00249   const bool numeric_limits<unsigned int>::has_signaling_NaN;
00250   const float_denorm_style numeric_limits<unsigned int>::has_denorm;
00251   const bool numeric_limits<unsigned int>::has_denorm_loss;
00252   const bool numeric_limits<unsigned int>::is_iec559;
00253   const bool numeric_limits<unsigned int>::is_bounded;
00254   const bool numeric_limits<unsigned int>::is_modulo;
00255   const bool numeric_limits<unsigned int>::traps;
00256   const bool numeric_limits<unsigned int>::tinyness_before;
00257   const float_round_style numeric_limits<unsigned int>::round_style;
00258 
00259   // long
00260   const bool numeric_limits<long>::is_specialized;
00261   const int  numeric_limits<long>::digits;
00262   const int  numeric_limits<long>::digits10;
00263   const bool numeric_limits<long>::is_signed;
00264   const bool numeric_limits<long>::is_integer;
00265   const bool numeric_limits<long>::is_exact;
00266   const int  numeric_limits<long>::radix;
00267   const int  numeric_limits<long>::min_exponent;
00268   const int  numeric_limits<long>::min_exponent10;
00269   const int  numeric_limits<long>::max_exponent;
00270   const int  numeric_limits<long>::max_exponent10;
00271   const bool numeric_limits<long>::has_infinity;
00272   const bool numeric_limits<long>::has_quiet_NaN;
00273   const bool numeric_limits<long>::has_signaling_NaN;
00274   const float_denorm_style numeric_limits<long>::has_denorm;
00275   const bool numeric_limits<long>::has_denorm_loss;
00276   const bool numeric_limits<long>::is_iec559;
00277   const bool numeric_limits<long>::is_bounded;
00278   const bool numeric_limits<long>::is_modulo;
00279   const bool numeric_limits<long>::traps;
00280   const bool numeric_limits<long>::tinyness_before;
00281   const float_round_style numeric_limits<long>::round_style;
00282 
00283   // unsigned long
00284   const bool numeric_limits<unsigned long>::is_specialized;
00285   const int  numeric_limits<unsigned long>::digits;
00286   const int  numeric_limits<unsigned long>::digits10;
00287   const bool numeric_limits<unsigned long>::is_signed;
00288   const bool numeric_limits<unsigned long>::is_integer;
00289   const bool numeric_limits<unsigned long>::is_exact;
00290   const int  numeric_limits<unsigned long>::radix;
00291   const int  numeric_limits<unsigned long>::min_exponent;
00292   const int  numeric_limits<unsigned long>::min_exponent10;
00293   const int  numeric_limits<unsigned long>::max_exponent;
00294   const int  numeric_limits<unsigned long>::max_exponent10;
00295   const bool numeric_limits<unsigned long>::has_infinity;
00296   const bool numeric_limits<unsigned long>::has_quiet_NaN;
00297   const bool numeric_limits<unsigned long>::has_signaling_NaN;
00298   const float_denorm_style numeric_limits<unsigned long>::has_denorm;
00299   const bool numeric_limits<unsigned long>::has_denorm_loss;
00300   const bool numeric_limits<unsigned long>::is_iec559;
00301   const bool numeric_limits<unsigned long>::is_bounded;
00302   const bool numeric_limits<unsigned long>::is_modulo;
00303   const bool numeric_limits<unsigned long>::traps;
00304   const bool numeric_limits<unsigned long>::tinyness_before;
00305   const float_round_style numeric_limits<unsigned long>::round_style;
00306 
00307   // NOTA BENE:  long long is an extension
00308   const bool numeric_limits<long long>::is_specialized;
00309   const int  numeric_limits<long long>::digits;
00310   const int  numeric_limits<long long>::digits10;
00311   const bool numeric_limits<long long>::is_signed;
00312   const bool numeric_limits<long long>::is_integer;
00313   const bool numeric_limits<long long>::is_exact;
00314   const int  numeric_limits<long long>::radix;
00315   const int  numeric_limits<long long>::min_exponent;
00316   const int  numeric_limits<long long>::min_exponent10;
00317   const int  numeric_limits<long long>::max_exponent;
00318   const int  numeric_limits<long long>::max_exponent10;
00319   const bool numeric_limits<long long>::has_infinity;
00320   const bool numeric_limits<long long>::has_quiet_NaN;
00321   const bool numeric_limits<long long>::has_signaling_NaN;
00322   const float_denorm_style numeric_limits<long long>::has_denorm;
00323   const bool numeric_limits<long long>::has_denorm_loss;
00324   const bool numeric_limits<long long>::is_iec559;
00325   const bool numeric_limits<long long>::is_bounded;
00326   const bool numeric_limits<long long>::is_modulo;
00327   const bool numeric_limits<long long>::traps;
00328   const bool numeric_limits<long long>::tinyness_before;
00329   const float_round_style numeric_limits<long long>::round_style;
00330 
00331   const bool numeric_limits<unsigned long long>::is_specialized;
00332   const int  numeric_limits<unsigned long long>::digits;
00333   const int  numeric_limits<unsigned long long>::digits10;
00334   const bool numeric_limits<unsigned long long>::is_signed;
00335   const bool numeric_limits<unsigned long long>::is_integer;
00336   const bool numeric_limits<unsigned long long>::is_exact;
00337   const int  numeric_limits<unsigned long long>::radix;
00338   const int  numeric_limits<unsigned long long>::min_exponent;
00339   const int  numeric_limits<unsigned long long>::min_exponent10;
00340   const int  numeric_limits<unsigned long long>::max_exponent;
00341   const int  numeric_limits<unsigned long long>::max_exponent10;
00342   const bool numeric_limits<unsigned long long>::has_infinity;
00343   const bool numeric_limits<unsigned long long>::has_quiet_NaN;
00344   const bool numeric_limits<unsigned long long>::has_signaling_NaN;
00345   const float_denorm_style numeric_limits<unsigned long long>::has_denorm;
00346   const bool numeric_limits<unsigned long long>::has_denorm_loss;
00347   const bool numeric_limits<unsigned long long>::is_iec559;
00348   const bool numeric_limits<unsigned long long>::is_bounded;
00349   const bool numeric_limits<unsigned long long>::is_modulo;
00350   const bool numeric_limits<unsigned long long>::traps;
00351   const bool numeric_limits<unsigned long long>::tinyness_before;
00352   const float_round_style numeric_limits<unsigned long long>::round_style;
00353 
00354   // float
00355   const bool numeric_limits<float>::is_specialized;
00356   const int  numeric_limits<float>::digits;
00357   const int  numeric_limits<float>::digits10;
00358   const bool numeric_limits<float>::is_signed;
00359   const bool numeric_limits<float>::is_integer;
00360   const bool numeric_limits<float>::is_exact;
00361   const int  numeric_limits<float>::radix;
00362   const int  numeric_limits<float>::min_exponent;
00363   const int  numeric_limits<float>::min_exponent10;
00364   const int  numeric_limits<float>::max_exponent;
00365   const int  numeric_limits<float>::max_exponent10;
00366   const bool numeric_limits<float>::has_infinity;
00367   const bool numeric_limits<float>::has_quiet_NaN;
00368   const bool numeric_limits<float>::has_signaling_NaN;
00369   const float_denorm_style numeric_limits<float>::has_denorm;
00370   const bool numeric_limits<float>::has_denorm_loss;
00371   const bool numeric_limits<float>::is_iec559;
00372   const bool numeric_limits<float>::is_bounded;
00373   const bool numeric_limits<float>::is_modulo;
00374   const bool numeric_limits<float>::traps;
00375   const bool numeric_limits<float>::tinyness_before;
00376   const float_round_style numeric_limits<float>::round_style;
00377 
00378   // double
00379   const bool numeric_limits<double>::is_specialized;
00380   const int  numeric_limits<double>::digits;
00381   const int  numeric_limits<double>::digits10;
00382   const bool numeric_limits<double>::is_signed;
00383   const bool numeric_limits<double>::is_integer;
00384   const bool numeric_limits<double>::is_exact;
00385   const int  numeric_limits<double>::radix;
00386   const int  numeric_limits<double>::min_exponent;
00387   const int  numeric_limits<double>::min_exponent10;
00388   const int  numeric_limits<double>::max_exponent;
00389   const int  numeric_limits<double>::max_exponent10;
00390   const bool numeric_limits<double>::has_infinity;
00391   const bool numeric_limits<double>::has_quiet_NaN;
00392   const bool numeric_limits<double>::has_signaling_NaN;
00393   const float_denorm_style numeric_limits<double>::has_denorm;
00394   const bool numeric_limits<double>::has_denorm_loss;
00395   const bool numeric_limits<double>::is_iec559;
00396   const bool numeric_limits<double>::is_bounded;
00397   const bool numeric_limits<double>::is_modulo;
00398   const bool numeric_limits<double>::traps;
00399   const bool numeric_limits<double>::tinyness_before;
00400   const float_round_style numeric_limits<double>::round_style;
00401 
00402   // long double
00403   const bool numeric_limits<long double>::is_specialized;
00404   const int  numeric_limits<long double>::digits;
00405   const int  numeric_limits<long double>::digits10;
00406   const bool numeric_limits<long double>::is_signed;
00407   const bool numeric_limits<long double>::is_integer;
00408   const bool numeric_limits<long double>::is_exact;
00409   const int  numeric_limits<long double>::radix;
00410   const int  numeric_limits<long double>::min_exponent;
00411   const int  numeric_limits<long double>::min_exponent10;
00412   const int  numeric_limits<long double>::max_exponent;
00413   const int  numeric_limits<long double>::max_exponent10;
00414   const bool numeric_limits<long double>::has_infinity;
00415   const bool numeric_limits<long double>::has_quiet_NaN;
00416   const bool numeric_limits<long double>::has_signaling_NaN;
00417   const float_denorm_style numeric_limits<long double>::has_denorm;
00418   const bool numeric_limits<long double>::has_denorm_loss;
00419   const bool numeric_limits<long double>::is_iec559;
00420   const bool numeric_limits<long double>::is_bounded;
00421   const bool numeric_limits<long double>::is_modulo;
00422   const bool numeric_limits<long double>::traps;
00423   const bool numeric_limits<long double>::tinyness_before;
00424   const float_round_style numeric_limits<long double>::round_style;
00425 } // namespace std
00426 
00427 

Generated on Mon Apr 8 03:11:27 2002 for libstdc++-v3 Source by doxygen1.2.15