LCOV - code coverage report
Current view: directory - cygdrive/c/program files/microsoft visual studio 9.0/vc/include - limits (source / functions) Found Hit Coverage
Test: coverage.lcov Lines: 33 33 100.0 %
Date: 2014-09-25 Functions: 0 0 -

       1                 : // limits standard header

       2                 : #pragma once
       3                 : #ifndef _LIMITS_
       4                 : #define _LIMITS_
       5                 : #ifndef RC_INVOKED
       6                 : #include <ymath.h>
       7                 : #include <cfloat>
       8                 : #include <climits>
       9                 : #include <cmath>
      10                 : #include <cwchar>
      11                 : #include <xstddef>
      12                 : 
      13                 : #ifdef _MSC_VER
      14                 :  #pragma pack(push,_CRT_PACKING)
      15                 :  #pragma warning(push,3)
      16                 : #endif  /* _MSC_VER */
      17                 : 
      18                 : _STD_BEGIN
      19                 : 
      20                 : //      ASSUMES:
      21                 : //      wraparound 2's complement integer arithmetic w/o traps
      22                 : //      all CHAR_BITs of each byte used by integers
      23                 : //      IEC559 (IEEE 754) floating-point arithmetic
      24                 : //      floating-point errors can trap
      25                 : //      tinyness detected before floating-point rounding
      26                 : //      64-bit long long (if _LONGLONG defined)
      27                 : 
      28                 :                 // ENUM float_denorm_style
      29                 : typedef enum
      30                 :         {       // constants for different IEEE float denormalization styles
      31                 :         denorm_indeterminate = -1,
      32                 :         denorm_absent = 0,
      33                 :         denorm_present = 1}
      34                 :                 float_denorm_style;
      35                 : 
      36                 :                 // ENUM float_round_style
      37                 : typedef enum
      38                 :         {       // constants for different IEEE rounding styles
      39                 :         round_indeterminate = -1,
      40                 :         round_toward_zero = 0,
      41                 :         round_to_nearest = 1,
      42                 :         round_toward_infinity = 2,
      43                 :         round_toward_neg_infinity = 3}
      44                 :                 float_round_style;
      45                 : 
      46                 :                 // STRUCT _Num_base
      47                 : struct _CRTIMP2_PURE _Num_base
      48                 :         {       // base for all types, with common defaults
      49                 :         _STCONS(float_denorm_style, has_denorm, denorm_absent);
      50                 :         _STCONS(bool, has_denorm_loss, false);
      51                 :         _STCONS(bool, has_infinity, false);
      52                 :         _STCONS(bool, has_quiet_NaN, false);
      53                 :         _STCONS(bool, has_signaling_NaN, false);
      54                 :         _STCONS(bool, is_bounded, false);
      55                 :         _STCONS(bool, is_exact, false);
      56                 :         _STCONS(bool, is_iec559, false);
      57                 :         _STCONS(bool, is_integer, false);
      58                 :         _STCONS(bool, is_modulo, false);
      59                 :         _STCONS(bool, is_signed, false);
      60                 :         _STCONS(bool, is_specialized, false);
      61                 :         _STCONS(bool, tinyness_before, false);
      62                 :         _STCONS(bool, traps, false);
      63                 :         _STCONS(float_round_style, round_style, round_toward_zero);
      64                 :         _STCONS(int, digits, 0);
      65                 :         _STCONS(int, digits10, 0);
      66                 :         _STCONS(int, max_exponent, 0);
      67                 :         _STCONS(int, max_exponent10, 0);
      68                 :         _STCONS(int, min_exponent, 0);
      69                 :         _STCONS(int, min_exponent10, 0);
      70                 :         _STCONS(int, radix, 0);
      71                 :         };
      72                 : 
      73                 : _STCONSDEF(_Num_base, float_denorm_style, has_denorm)
      74                 : _STCONSDEF(_Num_base, bool, has_denorm_loss)
      75                 : _STCONSDEF(_Num_base, bool, has_infinity)
      76                 : _STCONSDEF(_Num_base, bool, has_quiet_NaN)
      77                 : _STCONSDEF(_Num_base, bool, has_signaling_NaN)
      78                 : _STCONSDEF(_Num_base, bool, is_bounded)
      79                 : _STCONSDEF(_Num_base, bool, is_exact)
      80                 : _STCONSDEF(_Num_base, bool, is_iec559)
      81                 : _STCONSDEF(_Num_base, bool, is_integer)
      82                 : _STCONSDEF(_Num_base, bool, is_modulo)
      83                 : _STCONSDEF(_Num_base, bool, is_signed)
      84                 : _STCONSDEF(_Num_base, bool, is_specialized)
      85                 : _STCONSDEF(_Num_base, bool, tinyness_before)
      86                 : _STCONSDEF(_Num_base, bool, traps)
      87                 : _STCONSDEF(_Num_base, float_round_style, round_style)
      88                 : _STCONSDEF(_Num_base, int, digits)
      89                 : _STCONSDEF(_Num_base, int, digits10)
      90                 : _STCONSDEF(_Num_base, int, max_exponent)
      91                 : _STCONSDEF(_Num_base, int, max_exponent10)
      92                 : _STCONSDEF(_Num_base, int, min_exponent)
      93                 : _STCONSDEF(_Num_base, int, min_exponent10)
      94                 : _STCONSDEF(_Num_base, int, radix)
      95                 : 
      96                 :                 // TEMPLATE CLASS numeric_limits
      97                 : template<class _Ty>
      98                 :         class numeric_limits
      99                 :                 : public _Num_base
     100                 :         {       // numeric limits for arbitrary type _Ty (say little or nothing)
     101                 : public:
     102                 :         static _Ty (__CRTDECL min)() _THROW0()
     103                 :                 {       // return minimum value
     104                 :                 return (_Ty(0));
     105                 :                 }
     106                 : 
     107                 :         static _Ty (__CRTDECL max)() _THROW0()
     108                 :                 {       // return maximum value
     109                 :                 return (_Ty(0));
     110                 :                 }
     111                 : 
     112                 :         static _Ty __CRTDECL epsilon() _THROW0()
     113                 :                 {       // return smallest effective increment from 1.0
     114                 :                 return (_Ty(0));
     115                 :                 }
     116                 : 
     117                 :         static _Ty __CRTDECL round_error() _THROW0()
     118                 :                 {       // return largest rounding error
     119                 :                 return (_Ty(0));
     120                 :                 }
     121                 : 
     122                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     123                 :                 {       // return minimum denormalized value
     124                 :                 return (_Ty(0));
     125                 :                 }
     126                 : 
     127                 :         static _Ty __CRTDECL infinity() _THROW0()
     128                 :                 {       // return positive infinity
     129                 :                 return (_Ty(0));
     130                 :                 }
     131                 : 
     132                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     133                 :                 {       // return non-signaling NaN
     134                 :                 return (_Ty(0));
     135                 :                 }
     136                 : 
     137                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     138                 :                 {       // return signaling NaN
     139                 :                 return (_Ty(0));
     140                 :                 }
     141                 :         };
     142                 : 
     143                 :                 // STRUCT _Num_int_base
     144                 : struct _CRTIMP2_PURE _Num_int_base
     145                 :         : public _Num_base
     146                 :         {       // base for integer types
     147                 :         _STCONS(bool, is_bounded, true);
     148                 :         _STCONS(bool, is_exact, true);
     149                 :         _STCONS(bool, is_integer, true);
     150                 :         _STCONS(bool, is_modulo, true);
     151                 :         _STCONS(bool, is_specialized, true);
     152                 :         _STCONS(int, radix, 2);
     153                 :         };
     154                 : 
     155                 : _STCONSDEF(_Num_int_base, bool, is_bounded)
     156                 : _STCONSDEF(_Num_int_base, bool, is_exact)
     157                 : _STCONSDEF(_Num_int_base, bool, is_integer)
     158                 : _STCONSDEF(_Num_int_base, bool, is_modulo)
     159                 : _STCONSDEF(_Num_int_base, bool, is_specialized)
     160                 : _STCONSDEF(_Num_int_base, int, radix)
     161                 : 
     162                 :                 // STRUCT _Num_float_base
     163                 : struct _CRTIMP2_PURE _Num_float_base
     164                 :         : public _Num_base
     165                 :         {       // base for floating-point types
     166                 :         _STCONS(float_denorm_style, has_denorm, denorm_present);
     167                 :         _STCONS(bool, has_denorm_loss, true);
     168                 :         _STCONS(bool, has_infinity, true);
     169                 :         _STCONS(bool, has_quiet_NaN, true);
     170                 :         _STCONS(bool, has_signaling_NaN, true);
     171                 :         _STCONS(bool, is_bounded, true);
     172                 :         _STCONS(bool, is_exact, false);
     173                 :         _STCONS(bool, is_iec559, true);
     174                 :         _STCONS(bool, is_integer, false);
     175                 :         _STCONS(bool, is_modulo, false);
     176                 :         _STCONS(bool, is_signed, true);
     177                 :         _STCONS(bool, is_specialized, true);
     178                 :         _STCONS(bool, tinyness_before, true);
     179                 :         _STCONS(bool, traps, true);
     180                 :         _STCONS(float_round_style, round_style, round_to_nearest);
     181                 :         _STCONS(int, radix, FLT_RADIX);
     182                 :         };
     183                 : 
     184                 : _STCONSDEF(_Num_float_base, float_denorm_style, has_denorm)
     185                 : _STCONSDEF(_Num_float_base, bool, has_denorm_loss)
     186                 : _STCONSDEF(_Num_float_base, bool, has_infinity)
     187                 : _STCONSDEF(_Num_float_base, bool, has_quiet_NaN)
     188                 : _STCONSDEF(_Num_float_base, bool, has_signaling_NaN)
     189                 : _STCONSDEF(_Num_float_base, bool, is_bounded)
     190                 : _STCONSDEF(_Num_float_base, bool, is_exact)
     191                 : _STCONSDEF(_Num_float_base, bool, is_iec559)
     192                 : _STCONSDEF(_Num_float_base, bool, is_integer)
     193                 : _STCONSDEF(_Num_float_base, bool, is_modulo)
     194                 : _STCONSDEF(_Num_float_base, bool, is_signed)
     195                 : _STCONSDEF(_Num_float_base, bool, is_specialized)
     196                 : _STCONSDEF(_Num_float_base, bool, tinyness_before)
     197                 : _STCONSDEF(_Num_float_base, bool, traps)
     198                 : _STCONSDEF(_Num_float_base, float_round_style, round_style)
     199                 : _STCONSDEF(_Num_float_base, int, radix)
     200                 : 
     201                 :                 // CLASS numeric_limits<char>
     202                 : template<> class _CRTIMP2_PURE numeric_limits<char>
     203                 :         : public _Num_int_base
     204                 :         {       // limits for type char
     205                 : public:
     206                 :         typedef char _Ty;
     207                 : 
     208                 :         static _Ty (__CRTDECL min)() _THROW0()
     209                 :                 {       // return minimum value
     210                 :                 return (CHAR_MIN);
     211                 :                 }
     212                 : 
     213                 :         static _Ty (__CRTDECL max)() _THROW0()
     214                 :                 {       // return maximum value
     215                 :                 return (CHAR_MAX);
     216                 :                 }
     217                 : 
     218                 :         static _Ty __CRTDECL epsilon() _THROW0()
     219                 :                 {       // return smallest effective increment from 1.0
     220                 :                 return (0);
     221                 :                 }
     222                 : 
     223                 :         static _Ty __CRTDECL round_error() _THROW0()
     224                 :                 {       // return largest rounding error
     225                 :                 return (0);
     226                 :                 }
     227                 : 
     228                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     229                 :                 {       // return minimum denormalized value
     230                 :                 return (0);
     231                 :                 }
     232                 : 
     233                 :         static _Ty __CRTDECL infinity() _THROW0()
     234                 :                 {       // return positive infinity
     235                 :                 return (0);
     236                 :                 }
     237                 : 
     238                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     239                 :                 {       // return non-signaling NaN
     240                 :                 return (0);
     241                 :                 }
     242                 : 
     243                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     244                 :                 {       // return signaling NaN
     245                 :                 return (0);
     246                 :                 }
     247                 : 
     248                 :         _STCONS(bool, is_signed, CHAR_MIN != 0);
     249                 :         _STCONS(int, digits, CHAR_BIT - (CHAR_MIN != 0 ? 1 : 0));
     250                 :         _STCONS(int, digits10, (CHAR_BIT - (CHAR_MIN != 0 ? 1 : 0))
     251                 :                 * 301L / 1000);
     252                 :         };
     253                 : 
     254                 : _STCONSDEF(numeric_limits<char>, bool, is_signed)
     255                 : _STCONSDEF(numeric_limits<char>, int, digits)
     256                 : _STCONSDEF(numeric_limits<char>, int, digits10)
     257                 : 
     258                 :  #ifdef _NATIVE_WCHAR_T_DEFINED
     259                 :                 // CLASS numeric_limits<wchar_t>
     260                 : template<> class _CRTIMP2_PURE numeric_limits<wchar_t>
     261                 :         : public _Num_int_base
     262                 :         {       // limits for type wchar_t
     263                 : public:
     264                 :         typedef wchar_t _Ty;
     265                 : 
     266                 :         static _Ty (__CRTDECL min)() _THROW0()
     267                 :                 {       // return minimum value
     268                 :                 return ((_Ty)WCHAR_MIN);
     269                 :                 }
     270                 : 
     271                 :         static _Ty (__CRTDECL max)() _THROW0()
     272                 :                 {       // return maximum value
     273                 :                 return ((_Ty)WCHAR_MAX);
     274                 :                 }
     275                 : 
     276                 :         static _Ty __CRTDECL epsilon() _THROW0()
     277                 :                 {       // return smallest effective increment from 1.0
     278                 :                 return (0);
     279                 :                 }
     280                 : 
     281                 :         static _Ty __CRTDECL round_error() _THROW0()
     282                 :                 {       // return largest rounding error
     283                 :                 return (0);
     284                 :                 }
     285                 : 
     286                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     287                 :                 {       // return minimum denormalized value
     288                 :                 return (0);
     289                 :                 }
     290                 : 
     291                 :         static _Ty __CRTDECL infinity() _THROW0()
     292                 :                 {       // return positive infinity
     293                 :                 return (0);
     294                 :                 }
     295                 : 
     296                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     297                 :                 {       // return non-signaling NaN
     298                 :                 return (0);
     299                 :                 }
     300                 : 
     301                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     302                 :                 {       // return signaling NaN
     303                 :                 return (0);
     304                 :                 }
     305                 : 
     306                 :         _STCONS(bool, is_signed, WCHAR_MIN != 0);
     307                 :         _STCONS(int, digits, CHAR_BIT * sizeof (wchar_t)
     308                 :                 - (WCHAR_MIN != 0 ? 1 : 0));
     309                 :         _STCONS(int, digits10, (CHAR_BIT * sizeof (wchar_t)
     310                 :                 - (WCHAR_MIN != 0 ? 1 : 0)) * 301L / 1000);
     311                 :         };
     312                 :  
     313                 : _STCONSDEF(numeric_limits<wchar_t>, bool, is_signed)
     314                 : _STCONSDEF(numeric_limits<wchar_t>, int, digits)
     315                 : _STCONSDEF(numeric_limits<wchar_t>, int, digits10)
     316                 :  #endif /* _NATIVE_WCHAR_T_DEFINED */
     317                 : 
     318                 :                 // CLASS numeric_limits<_Bool>
     319                 : template<> class _CRTIMP2_PURE numeric_limits<_Bool>
     320                 :         : public _Num_int_base
     321                 :         {       // limits for type bool
     322                 : public:
     323                 :         typedef bool _Ty;
     324                 : 
     325                 :         static _Ty (__CRTDECL min)() _THROW0()
     326                 :                 {       // return minimum value
     327                 :                 return (false);
     328                 :                 }
     329                 : 
     330                 :         static _Ty (__CRTDECL max)() _THROW0()
     331                 :                 {       // return maximum value
     332                 :                 return (true);
     333                 :                 }
     334                 : 
     335                 :         static _Ty __CRTDECL epsilon() _THROW0()
     336                 :                 {       // return smallest effective increment from 1.0
     337                 :                 return (0);
     338                 :                 }
     339                 : 
     340                 :         static _Ty __CRTDECL round_error() _THROW0()
     341                 :                 {       // return largest rounding error
     342                 :                 return (0);
     343                 :                 }
     344                 : 
     345                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     346                 :                 {       // return minimum denormalized value
     347                 :                 return (0);
     348                 :                 }
     349                 : 
     350                 :         static _Ty __CRTDECL infinity() _THROW0()
     351                 :                 {       // return positive infinity
     352                 :                 return (0);
     353                 :                 }
     354                 : 
     355                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     356                 :                 {       // return non-signaling NaN
     357                 :                 return (0);
     358                 :                 }
     359                 : 
     360                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     361                 :                 {       // return signaling NaN
     362                 :                 return (0);
     363                 :                 }
     364                 : 
     365                 :         _STCONS(bool, is_modulo, false);
     366                 :         _STCONS(bool, is_signed, false);
     367                 :         _STCONS(int, digits, 1);
     368                 :         _STCONS(int, digits10, 0);
     369                 :         };
     370                 : 
     371                 : _STCONSDEF(numeric_limits<_Bool>, bool, is_modulo)
     372                 : _STCONSDEF(numeric_limits<_Bool>, bool, is_signed)
     373                 : _STCONSDEF(numeric_limits<_Bool>, int, digits)
     374                 : _STCONSDEF(numeric_limits<_Bool>, int, digits10)
     375                 : 
     376                 :                 // CLASS numeric_limits<signed char>
     377                 : template<> class _CRTIMP2_PURE numeric_limits<signed char>
     378                 :         : public _Num_int_base
     379                 :         {       // limits for type signed char
     380                 : public:
     381                 :         typedef signed char _Ty;
     382                 : 
     383               1 :         static _Ty (__CRTDECL min)() _THROW0()

     384                 :                 {       // return minimum value
     385               1 :                 return (SCHAR_MIN);

     386               1 :                 }

     387                 : 
     388               1 :         static _Ty (__CRTDECL max)() _THROW0()

     389                 :                 {       // return maximum value
     390               1 :                 return (SCHAR_MAX);

     391               1 :                 }

     392                 : 
     393                 :         static _Ty __CRTDECL epsilon() _THROW0()
     394                 :                 {       // return smallest effective increment from 1.0
     395                 :                 return (0);
     396                 :                 }
     397                 : 
     398                 :         static _Ty __CRTDECL round_error() _THROW0()
     399                 :                 {       // return largest rounding error
     400                 :                 return (0);
     401                 :                 }
     402                 : 
     403                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     404                 :                 {       // return minimum denormalized value
     405                 :                 return (0);
     406                 :                 }
     407                 : 
     408                 :         static _Ty __CRTDECL infinity() _THROW0()
     409                 :                 {       // return positive infinity
     410                 :                 return (0);
     411                 :                 }
     412                 : 
     413                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     414                 :                 {       // return non-signaling NaN
     415                 :                 return (0);
     416                 :                 }
     417                 : 
     418                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     419                 :                 {       // return signaling NaN
     420                 :                 return (0);
     421                 :                 }
     422                 : 
     423                 :         _STCONS(bool, is_signed, true);
     424                 :         _STCONS(int, digits, CHAR_BIT - 1);
     425                 :         _STCONS(int, digits10, (CHAR_BIT - 1) * 301L / 1000);
     426                 :         };
     427                 : 
     428                 : _STCONSDEF(numeric_limits<signed char>, bool, is_signed)
     429                 : _STCONSDEF(numeric_limits<signed char>, int, digits)
     430                 : _STCONSDEF(numeric_limits<signed char>, int, digits10)
     431                 : 
     432                 :                 // CLASS numeric_limits<unsigned char>
     433                 : template<> class _CRTIMP2_PURE numeric_limits<unsigned char>
     434                 :         : public _Num_int_base
     435                 :         {       // limits for type unsigned char
     436                 : public:
     437                 :         typedef unsigned char _Ty;
     438                 : 
     439               1 :         static _Ty (__CRTDECL min)() _THROW0()

     440                 :                 {       // return minimum value
     441               1 :                 return (0);

     442               1 :                 }

     443                 : 
     444               2 :         static _Ty (__CRTDECL max)() _THROW0()

     445                 :                 {       // return maximum value
     446               2 :                 return (UCHAR_MAX);

     447               2 :                 }

     448                 : 
     449                 :         static _Ty __CRTDECL epsilon() _THROW0()
     450                 :                 {       // return smallest effective increment from 1.0
     451                 :                 return (0);
     452                 :                 }
     453                 : 
     454                 :         static _Ty __CRTDECL round_error() _THROW0()
     455                 :                 {       // return largest rounding error
     456                 :                 return (0);
     457                 :                 }
     458                 : 
     459                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     460                 :                 {       // return minimum denormalized value
     461                 :                 return (0);
     462                 :                 }
     463                 : 
     464                 :         static _Ty __CRTDECL infinity() _THROW0()
     465                 :                 {       // return positive infinity
     466                 :                 return (0);
     467                 :                 }
     468                 : 
     469                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     470                 :                 {       // return non-signaling NaN
     471                 :                 return (0);
     472                 :                 }
     473                 : 
     474                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     475                 :                 {       // return signaling NaN
     476                 :                 return (0);
     477                 :                 }
     478                 : 
     479                 :         _STCONS(bool, is_signed, false);
     480                 :         _STCONS(int, digits, CHAR_BIT);
     481                 :         _STCONS(int, digits10, (CHAR_BIT) * 301L / 1000);
     482                 :         };
     483                 : 
     484                 : _STCONSDEF(numeric_limits<unsigned char>, bool, is_signed)
     485                 : _STCONSDEF(numeric_limits<unsigned char>, int, digits)
     486                 : _STCONSDEF(numeric_limits<unsigned char>, int, digits10)
     487                 : 
     488                 :                 // CLASS numeric_limits<short>
     489                 : template<> class _CRTIMP2_PURE numeric_limits<short>
     490                 :         : public _Num_int_base
     491                 :         {       // limits for type short
     492                 : public:
     493                 :         typedef short _Ty;
     494                 : 
     495                 :         static _Ty (__CRTDECL min)() _THROW0()
     496                 :                 {       // return minimum value
     497                 :                 return (SHRT_MIN);
     498                 :                 }
     499                 : 
     500                 :         static _Ty (__CRTDECL max)() _THROW0()
     501                 :                 {       // return maximum value
     502                 :                 return (SHRT_MAX);
     503                 :                 }
     504                 : 
     505                 :         static _Ty __CRTDECL epsilon() _THROW0()
     506                 :                 {       // return smallest effective increment from 1.0
     507                 :                 return (0);
     508                 :                 }
     509                 : 
     510                 :         static _Ty __CRTDECL round_error() _THROW0()
     511                 :                 {       // return largest rounding error
     512                 :                 return (0);
     513                 :                 }
     514                 : 
     515                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     516                 :                 {       // return minimum denormalized value
     517                 :                 return (0);
     518                 :                 }
     519                 : 
     520                 :         static _Ty __CRTDECL infinity() _THROW0()
     521                 :                 {       // return positive infinity
     522                 :                 return (0);
     523                 :                 }
     524                 : 
     525                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     526                 :                 {       // return non-signaling NaN
     527                 :                 return (0);
     528                 :                 }
     529                 : 
     530                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     531                 :                 {       // return signaling NaN
     532                 :                 return (0);
     533                 :                 }
     534                 : 
     535                 :         _STCONS(bool, is_signed, true);
     536                 :         _STCONS(int, digits, CHAR_BIT * sizeof (short) - 1);
     537                 :         _STCONS(int, digits10, (CHAR_BIT * sizeof (short) - 1)
     538                 :                 * 301L / 1000);
     539                 :         };
     540                 : 
     541                 : _STCONSDEF(numeric_limits<short>, bool, is_signed)
     542                 : _STCONSDEF(numeric_limits<short>, int, digits)
     543                 : _STCONSDEF(numeric_limits<short>, int, digits10)
     544                 : 
     545                 :                 // CLASS numeric_limits<unsigned short>
     546                 : template<> class _CRTIMP2_PURE numeric_limits<unsigned short>
     547                 :         : public _Num_int_base
     548                 :         {       // limits for type unsigned short
     549                 : public:
     550                 :         typedef unsigned short _Ty;
     551                 : 
     552               1 :         static _Ty (__CRTDECL min)() _THROW0()

     553                 :                 {       // return minimum value
     554               1 :                 return (0);

     555               1 :                 }

     556                 : 
     557               2 :         static _Ty (__CRTDECL max)() _THROW0()

     558                 :                 {       // return maximum value
     559               2 :                 return (USHRT_MAX);

     560               2 :                 }

     561                 : 
     562                 :         static _Ty __CRTDECL epsilon() _THROW0()
     563                 :                 {       // return smallest effective increment from 1.0
     564                 :                 return (0);
     565                 :                 }
     566                 : 
     567                 :         static _Ty __CRTDECL round_error() _THROW0()
     568                 :                 {       // return largest rounding error
     569                 :                 return (0);
     570                 :                 }
     571                 : 
     572                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     573                 :                 {       // return minimum denormalized value
     574                 :                 return (0);
     575                 :                 }
     576                 : 
     577                 :         static _Ty __CRTDECL infinity() _THROW0()
     578                 :                 {       // return positive infinity
     579                 :                 return (0);
     580                 :                 }
     581                 : 
     582                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     583                 :                 {       // return non-signaling NaN
     584                 :                 return (0);
     585                 :                 }
     586                 : 
     587                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     588                 :                 {       // return signaling NaN
     589                 :                 return (0);
     590                 :                 }
     591                 : 
     592                 :         _STCONS(bool, is_signed, false);
     593                 :         _STCONS(int, digits, CHAR_BIT * sizeof (unsigned short));
     594                 :         _STCONS(int, digits10, (CHAR_BIT * sizeof (unsigned short))
     595                 :                 * 301L / 1000);
     596                 :         };
     597                 : 
     598                 : _STCONSDEF(numeric_limits<unsigned short>, bool, is_signed)
     599                 : _STCONSDEF(numeric_limits<unsigned short>, int, digits)
     600                 : _STCONSDEF(numeric_limits<unsigned short>, int, digits10)
     601                 : 
     602                 :                 // CLASS numeric_limits<int>
     603                 : template<> class _CRTIMP2_PURE numeric_limits<int>
     604                 :         : public _Num_int_base
     605                 :         {       // limits for type int
     606                 : public:
     607                 :         typedef int _Ty;
     608                 : 
     609               2 :         static _Ty (__CRTDECL min)() _THROW0()

     610                 :                 {       // return minimum value
     611               2 :                 return (INT_MIN);

     612               2 :                 }

     613                 : 
     614               2 :         static _Ty (__CRTDECL max)() _THROW0()

     615                 :                 {       // return maximum value
     616               2 :                 return (INT_MAX);

     617               2 :                 }

     618                 : 
     619                 :         static _Ty __CRTDECL epsilon() _THROW0()
     620                 :                 {       // return smallest effective increment from 1.0
     621                 :                 return (0);
     622                 :                 }
     623                 : 
     624                 :         static _Ty __CRTDECL round_error() _THROW0()
     625                 :                 {       // return largest rounding error
     626                 :                 return (0);
     627                 :                 }
     628                 : 
     629                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     630                 :                 {       // return minimum denormalized value
     631                 :                 return (0);
     632                 :                 }
     633                 : 
     634                 :         static _Ty __CRTDECL infinity() _THROW0()
     635                 :                 {       // return positive infinity
     636                 :                 return (0);
     637                 :                 }
     638                 : 
     639                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     640                 :                 {       // return non-signaling NaN
     641                 :                 return (0);
     642                 :                 }
     643                 : 
     644                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     645                 :                 {       // return signaling NaN
     646                 :                 return (0);
     647                 :                 }
     648                 : 
     649                 :         _STCONS(bool, is_signed, true);
     650                 :         _STCONS(int, digits, CHAR_BIT * sizeof (int) - 1);
     651                 :         _STCONS(int, digits10, (CHAR_BIT * sizeof (int) - 1)
     652                 :                 * 301L / 1000);
     653                 :         };
     654                 : 
     655                 : _STCONSDEF(numeric_limits<int>, bool, is_signed)
     656                 : _STCONSDEF(numeric_limits<int>, int, digits)
     657                 : _STCONSDEF(numeric_limits<int>, int, digits10)
     658                 : 
     659                 :                 // CLASS numeric_limits<unsigned int>
     660                 : template<> class _CRTIMP2_PURE numeric_limits<unsigned int>
     661                 :         : public _Num_int_base
     662                 :         {       // limits for type unsigned int
     663                 : public:
     664                 :         typedef unsigned int _Ty;
     665                 : 
     666               2 :         static _Ty (__CRTDECL min)() _THROW0()

     667                 :                 {       // return minimum value
     668               2 :                 return (0);

     669               2 :                 }

     670                 : 
     671               3 :         static _Ty (__CRTDECL max)() _THROW0()

     672                 :                 {       // return maximum value
     673               3 :                 return (UINT_MAX);

     674               3 :                 }

     675                 : 
     676                 :         static _Ty __CRTDECL epsilon() _THROW0()
     677                 :                 {       // return smallest effective increment from 1.0
     678                 :                 return (0);
     679                 :                 }
     680                 : 
     681                 :         static _Ty __CRTDECL round_error() _THROW0()
     682                 :                 {       // return largest rounding error
     683                 :                 return (0);
     684                 :                 }
     685                 : 
     686                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     687                 :                 {       // return minimum denormalized value
     688                 :                 return (0);
     689                 :                 }
     690                 : 
     691                 :         static _Ty __CRTDECL infinity() _THROW0()
     692                 :                 {       // return positive infinity
     693                 :                 return (0);
     694                 :                 }
     695                 : 
     696                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     697                 :                 {       // return non-signaling NaN
     698                 :                 return (0);
     699                 :                 }
     700                 : 
     701                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     702                 :                 {       // return signaling NaN
     703                 :                 return (0);
     704                 :                 }
     705                 : 
     706                 :         _STCONS(bool, is_signed, false);
     707                 :         _STCONS(int, digits, CHAR_BIT * sizeof (unsigned int));
     708                 :         _STCONS(int, digits10, (CHAR_BIT * sizeof (unsigned int))
     709                 :                 * 301L / 1000);
     710                 :         };
     711                 : 
     712                 : _STCONSDEF(numeric_limits<unsigned int>, bool, is_signed)
     713                 : _STCONSDEF(numeric_limits<unsigned int>, int, digits)
     714                 : _STCONSDEF(numeric_limits<unsigned int>, int, digits10)
     715                 : 
     716                 :                 // CLASS numeric_limits<long>
     717                 : template<> class _CRTIMP2_PURE numeric_limits<long>
     718                 :         : public _Num_int_base
     719                 :         {       // limits for type long
     720                 : public:
     721                 :         typedef long _Ty;
     722                 : 
     723                 :         static _Ty (__CRTDECL min)() _THROW0()
     724                 :                 {       // return minimum value
     725                 :                 return (LONG_MIN);
     726                 :                 }
     727                 : 
     728                 :         static _Ty (__CRTDECL max)() _THROW0()
     729                 :                 {       // return maximum value
     730                 :                 return (LONG_MAX);
     731                 :                 }
     732                 : 
     733                 :         static _Ty __CRTDECL epsilon() _THROW0()
     734                 :                 {       // return smallest effective increment from 1.0
     735                 :                 return (0);
     736                 :                 }
     737                 : 
     738                 :         static _Ty __CRTDECL round_error() _THROW0()
     739                 :                 {       // return largest rounding error
     740                 :                 return (0);
     741                 :                 }
     742                 : 
     743                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     744                 :                 {       // return minimum denormalized value
     745                 :                 return (0);
     746                 :                 }
     747                 : 
     748                 :         static _Ty __CRTDECL infinity() _THROW0()
     749                 :                 {       // return positive infinity
     750                 :                 return (0);
     751                 :                 }
     752                 : 
     753                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     754                 :                 {       // return non-signaling NaN
     755                 :                 return (0);
     756                 :                 }
     757                 : 
     758                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     759                 :                 {       // return signaling NaN
     760                 :                 return (0);
     761                 :                 }
     762                 : 
     763                 :         _STCONS(bool, is_signed, true);
     764                 :         _STCONS(int, digits, CHAR_BIT * sizeof (long) - 1);
     765                 :         _STCONS(int, digits10, (CHAR_BIT * sizeof (long) - 1)
     766                 :                 * 301L / 1000);
     767                 :         };
     768                 : 
     769                 : _STCONSDEF(numeric_limits<long>, bool, is_signed)
     770                 : _STCONSDEF(numeric_limits<long>, int, digits)
     771                 : _STCONSDEF(numeric_limits<long>, int, digits10)
     772                 : 
     773                 :                 // CLASS numeric_limits<unsigned long>
     774                 : template<> class _CRTIMP2_PURE numeric_limits<unsigned long>
     775                 :         : public _Num_int_base
     776                 :         {       // limits for type unsigned long
     777                 : public:
     778                 :         typedef unsigned long _Ty;
     779                 : 
     780                 :         static _Ty (__CRTDECL min)() _THROW0()
     781                 :                 {       // return minimum value
     782                 :                 return (0);
     783                 :                 }
     784                 : 
     785                 :         static _Ty (__CRTDECL max)() _THROW0()
     786                 :                 {       // return maximum value
     787                 :                 return (ULONG_MAX);
     788                 :                 }
     789                 : 
     790                 :         static _Ty __CRTDECL epsilon() _THROW0()
     791                 :                 {       // return smallest effective increment from 1.0
     792                 :                 return (0);
     793                 :                 }
     794                 : 
     795                 :         static _Ty __CRTDECL round_error() _THROW0()
     796                 :                 {       // return largest rounding error
     797                 :                 return (0);
     798                 :                 }
     799                 : 
     800                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     801                 :                 {       // return minimum denormalized value
     802                 :                 return (0);
     803                 :                 }
     804                 : 
     805                 :         static _Ty __CRTDECL infinity() _THROW0()
     806                 :                 {       // return positive infinity
     807                 :                 return (0);
     808                 :                 }
     809                 : 
     810                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     811                 :                 {       // return non-signaling NaN
     812                 :                 return (0);
     813                 :                 }
     814                 : 
     815                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     816                 :                 {       // return signaling NaN
     817                 :                 return (0);
     818                 :                 }
     819                 : 
     820                 :         _STCONS(bool, is_signed, false);
     821                 :         _STCONS(int, digits, CHAR_BIT * sizeof (unsigned long));
     822                 :         _STCONS(int, digits10, (CHAR_BIT * sizeof (unsigned long))
     823                 :                 * 301L / 1000);
     824                 :         };
     825                 : 
     826                 : _STCONSDEF(numeric_limits<unsigned long>, bool, is_signed)
     827                 : _STCONSDEF(numeric_limits<unsigned long>, int, digits)
     828                 : _STCONSDEF(numeric_limits<unsigned long>, int, digits10)
     829                 : 
     830                 :  #ifdef _LONGLONG
     831                 :                 // CLASS numeric_limits<_LONGLONG>
     832                 : template<> class _CRTIMP2_PURE numeric_limits<_LONGLONG>
     833                 :         : public _Num_int_base
     834                 :         {       // limits for type long long
     835                 : public:
     836                 :         typedef _LONGLONG _Ty;
     837                 : 
     838                 :         static _Ty (__CRTDECL min)() _THROW0()
     839                 :                 {       // return minimum value
     840                 :                 return (-_LLONG_MAX - _C2);
     841                 :                 }
     842                 : 
     843                 :         static _Ty (__CRTDECL max)() _THROW0()
     844                 :                 {       // return maximum value
     845                 :                 return (_LLONG_MAX);
     846                 :                 }
     847                 : 
     848                 :         static _Ty __CRTDECL epsilon() _THROW0()
     849                 :                 {       // return smallest effective increment from 1.0
     850                 :                 return (0);
     851                 :                 }
     852                 : 
     853                 :         static _Ty __CRTDECL round_error() _THROW0()
     854                 :                 {       // return largest rounding error
     855                 :                 return (0);
     856                 :                 }
     857                 : 
     858                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     859                 :                 {       // return minimum denormalized value
     860                 :                 return (0);
     861                 :                 }
     862                 : 
     863                 :         static _Ty __CRTDECL infinity() _THROW0()
     864                 :                 {       // return positive infinity
     865                 :                 return (0);
     866                 :                 }
     867                 : 
     868                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     869                 :                 {       // return non-signaling NaN
     870                 :                 return (0);
     871                 :                 }
     872                 : 
     873                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     874                 :                 {       // return signaling NaN
     875                 :                 return (0);
     876                 :                 }
     877                 : 
     878                 :         _STCONS(bool, is_signed, true);
     879                 :         _STCONS(int, digits, CHAR_BIT * sizeof (_LONGLONG) - 1);
     880                 :         _STCONS(int, digits10, (CHAR_BIT * sizeof (_LONGLONG) - 1)
     881                 :                 * 301L / 1000);
     882                 :         };
     883                 : 
     884                 : _STCONSDEF(numeric_limits<_LONGLONG>, bool, is_signed)
     885                 : _STCONSDEF(numeric_limits<_LONGLONG>, int, digits)
     886                 : _STCONSDEF(numeric_limits<_LONGLONG>, int, digits10)
     887                 : 
     888                 :                 // CLASS numeric_limits<_ULONGLONG>
     889                 : template<> class _CRTIMP2_PURE numeric_limits<_ULONGLONG>
     890                 :         : public _Num_int_base
     891                 :         {       // limits for type unsigned long long
     892                 : public:
     893                 :         typedef _ULONGLONG _Ty;
     894                 : 
     895                 :         static _Ty (__CRTDECL min)() _THROW0()
     896                 :                 {       // return minimum value
     897                 :                 return (0);
     898                 :                 }
     899                 : 
     900               1 :         static _Ty (__CRTDECL max)() _THROW0()

     901                 :                 {       // return maximum value
     902               1 :                 return (_ULLONG_MAX);

     903               1 :                 }

     904                 : 
     905                 :         static _Ty __CRTDECL epsilon() _THROW0()
     906                 :                 {       // return smallest effective increment from 1.0
     907                 :                 return (0);
     908                 :                 }
     909                 : 
     910                 :         static _Ty __CRTDECL round_error() _THROW0()
     911                 :                 {       // return largest rounding error
     912                 :                 return (0);
     913                 :                 }
     914                 : 
     915                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     916                 :                 {       // return minimum denormalized value
     917                 :                 return (0);
     918                 :                 }
     919                 : 
     920                 :         static _Ty __CRTDECL infinity() _THROW0()
     921                 :                 {       // return positive infinity
     922                 :                 return (0);
     923                 :                 }
     924                 : 
     925                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     926                 :                 {       // return non-signaling NaN
     927                 :                 return (0);
     928                 :                 }
     929                 : 
     930                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     931                 :                 {       // return signaling NaN
     932                 :                 return (0);
     933                 :                 }
     934                 : 
     935                 :         _STCONS(bool, is_signed, false);
     936                 :         _STCONS(int, digits, CHAR_BIT * sizeof (_ULONGLONG));
     937                 :         _STCONS(int, digits10, (CHAR_BIT * sizeof (_ULONGLONG))
     938                 :                 * 301L / 1000);
     939                 :         };
     940                 : 
     941                 : _STCONSDEF(numeric_limits<_ULONGLONG>, bool, is_signed)
     942                 : _STCONSDEF(numeric_limits<_ULONGLONG>, int, digits)
     943                 : _STCONSDEF(numeric_limits<_ULONGLONG>, int, digits10)
     944                 : 
     945                 :  #endif /* _LONGLONG */
     946                 : 
     947                 :                 // CLASS numeric_limits<float>
     948                 : template<> class _CRTIMP2_PURE numeric_limits<float>
     949                 :         : public _Num_float_base
     950                 :         {       // limits for type float
     951                 : public:
     952                 :         typedef float _Ty;
     953                 : 
     954                 :         static _Ty (__CRTDECL min)() _THROW0()
     955                 :                 {       // return minimum value
     956                 :                 return (FLT_MIN);
     957                 :                 }
     958                 : 
     959                 :         static _Ty (__CRTDECL max)() _THROW0()
     960                 :                 {       // return maximum value
     961                 :                 return (FLT_MAX);
     962                 :                 }
     963                 : 
     964                 :         static _Ty __CRTDECL epsilon() _THROW0()
     965                 :                 {       // return smallest effective increment from 1.0
     966                 :                 return (FLT_EPSILON);
     967                 :                 }
     968                 : 
     969                 :         static _Ty __CRTDECL round_error() _THROW0()
     970                 :                 {       // return largest rounding error
     971                 :                 return (0.5);
     972                 :                 }
     973                 : 
     974                 :         static _Ty __CRTDECL denorm_min() _THROW0()
     975                 :                 {       // return minimum denormalized value
     976                 :                 return (::_FDenorm._Float);
     977                 :                 }
     978                 : 
     979                 :         static _Ty __CRTDECL infinity() _THROW0()
     980                 :                 {       // return positive infinity
     981                 :                 return (::_FInf._Float);
     982                 :                 }
     983                 : 
     984                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
     985                 :                 {       // return non-signaling NaN
     986                 :                 return (::_FNan._Float);
     987                 :                 }
     988                 : 
     989                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
     990                 :                 {       // return signaling NaN
     991                 :                 return (::_FSnan._Float);
     992                 :                 }
     993                 : 
     994                 :         _STCONS(int, digits, FLT_MANT_DIG);
     995                 :         _STCONS(int, digits10, FLT_DIG);
     996                 :         _STCONS(int, max_exponent, (int)FLT_MAX_EXP);
     997                 :         _STCONS(int, max_exponent10, (int)FLT_MAX_10_EXP);
     998                 :         _STCONS(int, min_exponent, (int)FLT_MIN_EXP);
     999                 :         _STCONS(int, min_exponent10, (int)FLT_MIN_10_EXP);
    1000                 :         };
    1001                 : 
    1002                 : _STCONSDEF(numeric_limits<float>, int, digits)
    1003                 : _STCONSDEF(numeric_limits<float>, int, digits10)
    1004                 : _STCONSDEF(numeric_limits<float>, int, max_exponent)
    1005                 : _STCONSDEF(numeric_limits<float>, int, max_exponent10)
    1006                 : _STCONSDEF(numeric_limits<float>, int, min_exponent)
    1007                 : _STCONSDEF(numeric_limits<float>, int, min_exponent10)
    1008                 : 
    1009                 :                 // CLASS numeric_limits<double>
    1010                 : template<> class _CRTIMP2_PURE numeric_limits<double>
    1011                 :         : public _Num_float_base
    1012                 :         {       // limits for type double
    1013                 : public:
    1014                 :         typedef double _Ty;
    1015                 : 
    1016                 :         static _Ty (__CRTDECL min)() _THROW0()
    1017                 :                 {       // return minimum value
    1018                 :                 return (DBL_MIN);
    1019                 :                 }
    1020                 : 
    1021                 :         static _Ty (__CRTDECL max)() _THROW0()
    1022                 :                 {       // return maximum value
    1023                 :                 return (DBL_MAX);
    1024                 :                 }
    1025                 : 
    1026                 :         static _Ty __CRTDECL epsilon() _THROW0()
    1027                 :                 {       // return smallest effective increment from 1.0
    1028                 :                 return (DBL_EPSILON);
    1029                 :                 }
    1030                 : 
    1031                 :         static _Ty __CRTDECL round_error() _THROW0()
    1032                 :                 {       // return largest rounding error
    1033                 :                 return (0.5);
    1034                 :                 }
    1035                 : 
    1036                 :         static _Ty __CRTDECL denorm_min() _THROW0()
    1037                 :                 {       // return minimum denormalized value
    1038                 :                 return (::_Denorm._Double);
    1039                 :                 }
    1040                 : 
    1041                 :         static _Ty __CRTDECL infinity() _THROW0()
    1042                 :                 {       // return positive infinity
    1043                 :                 return (::_Inf._Double);
    1044                 :                 }
    1045                 : 
    1046                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
    1047                 :                 {       // return non-signaling NaN
    1048                 :                 return (::_Nan._Double);
    1049                 :                 }
    1050                 : 
    1051                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
    1052                 :                 {       // return signaling NaN
    1053                 :                 return (::_Snan._Double);
    1054                 :                 }
    1055                 : 
    1056                 :         _STCONS(int, digits, DBL_MANT_DIG);
    1057                 :         _STCONS(int, digits10, DBL_DIG);
    1058                 :         _STCONS(int, max_exponent, (int)DBL_MAX_EXP);
    1059                 :         _STCONS(int, max_exponent10, (int)DBL_MAX_10_EXP);
    1060                 :         _STCONS(int, min_exponent, (int)DBL_MIN_EXP);
    1061                 :         _STCONS(int, min_exponent10, (int)DBL_MIN_10_EXP);
    1062                 :         };
    1063                 : 
    1064                 : _STCONSDEF(numeric_limits<double>, int, digits)
    1065                 : _STCONSDEF(numeric_limits<double>, int, digits10)
    1066                 : _STCONSDEF(numeric_limits<double>, int, max_exponent)
    1067                 : _STCONSDEF(numeric_limits<double>, int, max_exponent10)
    1068                 : _STCONSDEF(numeric_limits<double>, int, min_exponent)
    1069                 : _STCONSDEF(numeric_limits<double>, int, min_exponent10)
    1070                 : 
    1071                 :                 // CLASS numeric_limits<long double>
    1072                 : template<> class _CRTIMP2_PURE numeric_limits<long double>
    1073                 :         : public _Num_float_base
    1074                 :         {       // limits for type long double
    1075                 : public:
    1076                 :         typedef long double _Ty;
    1077                 : 
    1078                 :         static _Ty (__CRTDECL min)() _THROW0()
    1079                 :                 {       // return minimum value
    1080                 :                 return (LDBL_MIN);
    1081                 :                 }
    1082                 : 
    1083                 :         static _Ty (__CRTDECL max)() _THROW0()
    1084                 :                 {       // return maximum value
    1085                 :                 return (LDBL_MAX);
    1086                 :                 }
    1087                 : 
    1088                 :         static _Ty __CRTDECL epsilon() _THROW0()
    1089                 :                 {       // return smallest effective increment from 1.0
    1090                 :                 return (LDBL_EPSILON);
    1091                 :                 }
    1092                 : 
    1093                 :         static _Ty __CRTDECL round_error() _THROW0()
    1094                 :                 {       // return largest rounding error
    1095                 :                 return (0.5);
    1096                 :                 }
    1097                 : 
    1098                 :         static _Ty __CRTDECL denorm_min() _THROW0()
    1099                 :                 {       // return minimum denormalized value
    1100                 :                 return (::_LDenorm._Long_double);
    1101                 :                 }
    1102                 : 
    1103                 :         static _Ty __CRTDECL infinity() _THROW0()
    1104                 :                 {       // return positive infinity
    1105                 :                 return (::_LInf._Long_double);
    1106                 :                 }
    1107                 : 
    1108                 :         static _Ty __CRTDECL quiet_NaN() _THROW0()
    1109                 :                 {       // return non-signaling NaN
    1110                 :                 return (::_LNan._Long_double);
    1111                 :                 }
    1112                 : 
    1113                 :         static _Ty __CRTDECL signaling_NaN() _THROW0()
    1114                 :                 {       // return signaling NaN
    1115                 :                 return (::_LSnan._Long_double);
    1116                 :                 }
    1117                 : 
    1118                 :         _STCONS(int, digits, LDBL_MANT_DIG);
    1119                 :         _STCONS(int, digits10, LDBL_DIG);
    1120                 :         _STCONS(int, max_exponent, (int)LDBL_MAX_EXP);
    1121                 :         _STCONS(int, max_exponent10, (int)LDBL_MAX_10_EXP);
    1122                 :         _STCONS(int, min_exponent, (int)LDBL_MIN_EXP);
    1123                 :         _STCONS(int, min_exponent10, (int)LDBL_MIN_10_EXP);
    1124                 :         };
    1125                 : 
    1126                 : _STCONSDEF(numeric_limits<long double>, int, digits)
    1127                 : _STCONSDEF(numeric_limits<long double>, int, digits10)
    1128                 : _STCONSDEF(numeric_limits<long double>, int, max_exponent)
    1129                 : _STCONSDEF(numeric_limits<long double>, int, max_exponent10)
    1130                 : _STCONSDEF(numeric_limits<long double>, int, min_exponent)
    1131                 : _STCONSDEF(numeric_limits<long double>, int, min_exponent10)
    1132                 : 
    1133                 : _STD_END
    1134                 : #ifdef _MSC_VER
    1135                 :  #pragma warning(pop)
    1136                 :  #pragma pack(pop)
    1137                 : #endif  /* _MSC_VER */
    1138                 : 
    1139                 : #endif /* RC_INVOKED */
    1140                 : #endif /* _LIMITS_ */
    1141                 : 
    1142                 : /*
    1143                 :  * Copyright (c) 1992-2006 by P.J. Plauger.  ALL RIGHTS RESERVED.
    1144                 :  * Consult your license regarding permissions and restrictions.
    1145                 :  V5.02:0009 */

Generated by: LCOV version 1.7