⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _limits.h

📁 symbian 上的stl_port进过编译的。
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 1997 * Silicon Graphics Computer Systems, Inc. * * Copyright (c) 1999 * Boris Fomitchev * * This material is provided "as is", with absolutely no warranty expressed * or implied. Any use is at your own risk. * * Permission to use or copy this software for any purpose is hereby granted * without fee, provided the above notices are retained on all copies. * Permission to modify the code and to distribute modified code is granted, * provided the above notices are retained, and a notice that the code was * modified is included with the above copyright notice. * *//* NOTE: This may be not portable code. Parts of numeric_limits<> are * inherently machine-dependent.  At present this file is suitable * for the MIPS, SPARC, Alpha and ia32 architectures. */#ifndef _STLP_INTERNAL_LIMITS#define _STLP_INTERNAL_LIMITS#ifndef _STLP_CLIMITS#  include <climits>#endif#ifndef _STLP_CFLOAT#  include <cfloat>#endif#if defined (_STLP_HAS_WCHAR_T) && !defined (_STLP_INTERNAL_CWCHAR)#  include <stl/_cwchar.h>#endif_STLP_BEGIN_NAMESPACEenum float_round_style {  round_indeterminate       = -1,  round_toward_zero         =  0,  round_to_nearest          =  1,  round_toward_infinity     =  2,  round_toward_neg_infinity =  3};enum float_denorm_style {  denorm_indeterminate = -1,  denorm_absent        =  0,  denorm_present       =  1};_STLP_MOVE_TO_PRIV_NAMESPACE// Base class for all specializations of numeric_limits.template <class __number>class _Numeric_limits_base {public:  static __number (_STLP_CALL min)() _STLP_NOTHROW { return __number(); }  static __number (_STLP_CALL max)() _STLP_NOTHROW { return __number(); }#if defined ( _STLP_STATIC_CONST_INIT_BUG)  enum {#else  static const int#endif  digits = 0,  digits10 = 0,  radix = 0,  min_exponent = 0,  min_exponent10 = 0,  max_exponent = 0,  max_exponent10 = 0#if defined ( _STLP_STATIC_CONST_INIT_BUG)  ,  has_denorm = denorm_absent,  round_style = round_toward_zero,#else  ;  static const float_denorm_style has_denorm =  denorm_absent;  static const float_round_style round_style = round_toward_zero;  static const bool#endif    is_specialized = false,    is_signed  = false,    is_integer = false,    is_exact = false,    has_infinity = false,    has_quiet_NaN = false,    has_signaling_NaN = false,    has_denorm_loss = false,    is_iec559 = false,    is_bounded = false,    is_modulo = false,    traps = false,    tinyness_before = false#if defined ( _STLP_STATIC_CONST_INIT_BUG)  }#endif  ;  static __number _STLP_CALL epsilon() _STLP_NOTHROW     { return __number(); }  static __number _STLP_CALL round_error() _STLP_NOTHROW { return __number(); }  static __number _STLP_CALL infinity() _STLP_NOTHROW      { return __number(); }  static __number _STLP_CALL quiet_NaN() _STLP_NOTHROW     { return __number(); }  static __number _STLP_CALL signaling_NaN() _STLP_NOTHROW { return __number(); }  static __number _STLP_CALL denorm_min() _STLP_NOTHROW    { return __number(); }};// Base class for integers.#ifdef _STLP_LIMITED_DEFAULT_TEMPLATES#  ifdef _STLP_LONG_LONG#    define _STLP_LIMITS_MIN_TYPE _STLP_LONG_LONG#    define _STLP_LIMITS_MAX_TYPE unsigned _STLP_LONG_LONG#  else#    define _STLP_LIMITS_MIN_TYPE long#    define _STLP_LIMITS_MAX_TYPE unsigned long#  endif#else#  define _STLP_LIMITS_MIN_TYPE _Int#  define _STLP_LIMITS_MAX_TYPE _Int#endif /* _STLP_LIMITED_DEFAULT_TEMPLATES */template <class _Int,          _STLP_LIMITS_MIN_TYPE __imin,          _STLP_LIMITS_MAX_TYPE __imax,          int __idigits, bool __ismod>class _Integer_limits : public _Numeric_limits_base<_Int> {public:  static _Int (_STLP_CALL min) () _STLP_NOTHROW { return (_Int)__imin; }  static _Int (_STLP_CALL max) () _STLP_NOTHROW { return (_Int)__imax; }#if defined (_STLP_STATIC_CONST_INIT_BUG)  enum {#else  static const int#endif  digits = (__idigits < 0) ?  ((int)((sizeof(_Int) * (CHAR_BIT))) - ((__imin == 0) ? 0 : 1))  : (__idigits),  digits10 = (digits * 301UL) / 1000,  radix = 2#if !defined (_STLP_STATIC_CONST_INIT_BUG)  ;  static const bool#else  ,#endif  is_specialized = true,  is_signed = (__imin != 0),  is_integer = true,  is_exact = true,  is_bounded = true,  is_modulo = __ismod#if defined ( _STLP_STATIC_CONST_INIT_BUG)  }#endif  ;};// Base class for floating-point numbers.template <class __number,         int __Digits, int __Digits10,         int __MinExp, int __MaxExp,         int __MinExp10, int __MaxExp10,         bool __IsIEC559,         float_round_style __RoundStyle>class _Floating_limits : public _Numeric_limits_base<__number> {public:#if defined (_STLP_STATIC_CONST_INIT_BUG)  enum {#else  static const int#endif  digits = __Digits,  digits10 = __Digits10,  radix = (  FLT_RADIX /* 2 */ ),  min_exponent = __MinExp,  max_exponent = __MaxExp,  min_exponent10 = __MinExp10,  max_exponent10 = __MaxExp10#if defined (_STLP_STATIC_CONST_INIT_BUG)  ,  has_denorm = denorm_indeterminate,  round_style = __RoundStyle,#else  ;  static const float_denorm_style has_denorm = denorm_indeterminate;  static const float_round_style round_style = __RoundStyle;  static const bool#endif  is_specialized = true,  is_signed = true,  //IEC 559 specify the floating point representation of  //infinity, quiet and signaling Not a Number. Not supporting  //it is consider as not being able to grant those values.#if (defined (_STLP_MSVC) && (_STLP_MSVC < 1300))  //MSVC 6 do not fully support IEC 599 but grant a good infinity value.  has_infinity      = true,#else  has_infinity      = __IsIEC559,#endif  has_quiet_NaN     = __IsIEC559,  has_signaling_NaN = __IsIEC559,  has_denorm_loss   =  false,  is_iec559      =  __IsIEC559,  is_bounded     =  true,  traps          =  true,  tinyness_before=  false#if defined (_STLP_STATIC_CONST_INIT_BUG)  }#endif  ;};_STLP_MOVE_TO_STD_NAMESPACE// Class numeric_limits// The unspecialized class.template<class _Tp>class numeric_limits : public _STLP_PRIV _Numeric_limits_base<_Tp> {};// Specializations for all built-in integral types.#if !defined (_STLP_NO_BOOL)_STLP_TEMPLATE_NULLclass numeric_limits<bool>  : public _STLP_PRIV _Integer_limits<bool, false, true, 1, false>{};#endif /* _STLP_NO_BOOL */_STLP_TEMPLATE_NULLclass numeric_limits<char>  : public _STLP_PRIV _Integer_limits<char, CHAR_MIN, CHAR_MAX, -1, true>{};#if !defined (_STLP_NO_SIGNED_BUILTINS)_STLP_TEMPLATE_NULLclass numeric_limits<signed char>  : public _STLP_PRIV _Integer_limits<signed char, SCHAR_MIN, SCHAR_MAX, -1, true>{};#endif_STLP_TEMPLATE_NULLclass numeric_limits<unsigned char>  : public _STLP_PRIV _Integer_limits<unsigned char, 0, UCHAR_MAX, -1, true>{};#if !(defined (_STLP_NO_WCHAR_T) || defined (_STLP_WCHAR_T_IS_USHORT))_STLP_TEMPLATE_NULL

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -