BVB Source Codes

mars Show limits.hpp Source code

Return Download mars: download limits.hpp Source code - Download mars Source code - Type:.hpp
  1.  
  2. //  (C) Copyright John maddock 1999.
  3. //  (C) David Abrahams 2002.  Distributed under the Boost
  4. //  Software License, Version 1.0. (See accompanying file
  5. //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. //
  7. // use this header as a workaround for missing <limits>
  8.  
  9. //  See http://www.boost.org/libs/compatibility/index.html for documentation.
  10.  
  11. #ifndef BOOST_LIMITS
  12. #define BOOST_LIMITS
  13.  
  14. #include <boost/config.hpp>
  15.  
  16. #ifdef BOOST_NO_LIMITS
  17. #  error "There is no std::numeric_limits suppport available."
  18. #else
  19. # include <limits>
  20. #endif
  21.  
  22. #if (defined(BOOST_HAS_LONG_LONG) && defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)) \
  23.       || (defined(BOOST_HAS_MS_INT64) && defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS))
  24. // Add missing specializations for numeric_limits:
  25. #ifdef BOOST_HAS_MS_INT64
  26. #  define BOOST_LLT __int64
  27. #  define BOOST_ULLT unsigned __int64
  28. #else
  29. #  define BOOST_LLT  ::mars_boost::long_long_type
  30. #  define BOOST_ULLT  ::mars_boost::ulong_long_type
  31. #endif
  32.  
  33. #include <climits>  // for CHAR_BIT
  34.  
  35. namespace std
  36. {
  37.   template<>
  38.   class numeric_limits<BOOST_LLT>
  39.   {
  40.    public:
  41.  
  42.       BOOST_STATIC_CONSTANT(bool, is_specialized = true);
  43. #ifdef BOOST_HAS_MS_INT64
  44.       static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x8000000000000000i64; }
  45.       static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x7FFFFFFFFFFFFFFFi64; }
  46. #elif defined(LLONG_MAX)
  47.       static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MIN; }
  48.       static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MAX; }
  49. #elif defined(LONGLONG_MAX)
  50.       static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MIN; }
  51.       static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MAX; }
  52. #else
  53.       static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 1LL << (sizeof(BOOST_LLT) * CHAR_BIT - 1); }
  54.       static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~(min)(); }
  55. #endif
  56.       BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT -1);
  57.       BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT) - 1) * 301L / 1000);
  58.       BOOST_STATIC_CONSTANT(bool, is_signed = true);
  59.       BOOST_STATIC_CONSTANT(bool, is_integer = true);
  60.       BOOST_STATIC_CONSTANT(bool, is_exact = true);
  61.       BOOST_STATIC_CONSTANT(int, radix = 2);
  62.       static BOOST_LLT epsilon() throw() { return 0; };
  63.       static BOOST_LLT round_error() throw() { return 0; };
  64.  
  65.       BOOST_STATIC_CONSTANT(int, min_exponent = 0);
  66.       BOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
  67.       BOOST_STATIC_CONSTANT(int, max_exponent = 0);
  68.       BOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
  69.  
  70.       BOOST_STATIC_CONSTANT(bool, has_infinity = false);
  71.       BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
  72.       BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
  73.       BOOST_STATIC_CONSTANT(bool, has_denorm = false);
  74.       BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
  75.       static BOOST_LLT infinity() throw() { return 0; };
  76.       static BOOST_LLT quiet_NaN() throw() { return 0; };
  77.       static BOOST_LLT signaling_NaN() throw() { return 0; };
  78.       static BOOST_LLT denorm_min() throw() { return 0; };
  79.  
  80.       BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
  81.       BOOST_STATIC_CONSTANT(bool, is_bounded = true);
  82.       BOOST_STATIC_CONSTANT(bool, is_modulo = true);
  83.  
  84.       BOOST_STATIC_CONSTANT(bool, traps = false);
  85.       BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
  86.       BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
  87.      
  88.   };
  89.  
  90.   template<>
  91.   class numeric_limits<BOOST_ULLT>
  92.   {
  93.    public:
  94.  
  95.       BOOST_STATIC_CONSTANT(bool, is_specialized = true);
  96. #ifdef BOOST_HAS_MS_INT64
  97.       static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0ui64; }
  98.       static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0xFFFFFFFFFFFFFFFFui64; }
  99. #elif defined(ULLONG_MAX) && defined(ULLONG_MIN)
  100.       static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MIN; }
  101.       static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MAX; }
  102. #elif defined(ULONGLONG_MAX) && defined(ULONGLONG_MIN)
  103.       static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MIN; }
  104.       static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MAX; }
  105. #else
  106.       static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0uLL; }
  107.       static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~0uLL; }
  108. #endif
  109.       BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT);
  110.       BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT)) * 301L / 1000);
  111.       BOOST_STATIC_CONSTANT(bool, is_signed = false);
  112.       BOOST_STATIC_CONSTANT(bool, is_integer = true);
  113.       BOOST_STATIC_CONSTANT(bool, is_exact = true);
  114.       BOOST_STATIC_CONSTANT(int, radix = 2);
  115.       static BOOST_ULLT epsilon() throw() { return 0; };
  116.       static BOOST_ULLT round_error() throw() { return 0; };
  117.  
  118.       BOOST_STATIC_CONSTANT(int, min_exponent = 0);
  119.       BOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
  120.       BOOST_STATIC_CONSTANT(int, max_exponent = 0);
  121.       BOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
  122.  
  123.       BOOST_STATIC_CONSTANT(bool, has_infinity = false);
  124.       BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
  125.       BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
  126.       BOOST_STATIC_CONSTANT(bool, has_denorm = false);
  127.       BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
  128.       static BOOST_ULLT infinity() throw() { return 0; };
  129.       static BOOST_ULLT quiet_NaN() throw() { return 0; };
  130.       static BOOST_ULLT signaling_NaN() throw() { return 0; };
  131.       static BOOST_ULLT denorm_min() throw() { return 0; };
  132.  
  133.       BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
  134.       BOOST_STATIC_CONSTANT(bool, is_bounded = true);
  135.       BOOST_STATIC_CONSTANT(bool, is_modulo = true);
  136.  
  137.       BOOST_STATIC_CONSTANT(bool, traps = false);
  138.       BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
  139.       BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
  140.      
  141.   };
  142. }
  143. #endif
  144.  
  145. #endif
  146.  
  147.  
downloadlimits.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top