Skip to content

Commit 06e69ea

Browse files
committed
Merge pull request boostorg#5 from robin-eckert/cpp11limits
add support for C++11 numeric_limits::max_digits10 and ::lowest
2 parents 48b58b6 + e358e15 commit 06e69ea

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

include/boost/units/limits.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
#include <limits>
2020

21+
#include <boost/config.hpp>
2122
#include <boost/units/units_fwd.hpp>
2223

2324
namespace std {
@@ -30,8 +31,14 @@ class numeric_limits< ::boost::units::quantity<Unit, T> >
3031
static const bool is_specialized = std::numeric_limits<T>::is_specialized;
3132
static quantity_type (min)() { return(quantity_type::from_value((std::numeric_limits<T>::min)())); }
3233
static quantity_type (max)() { return(quantity_type::from_value((std::numeric_limits<T>::max)())); }
34+
#ifndef BOOST_NO_CXX11_NUMERIC_LIMITS
35+
static quantity_type (lowest)() { return(quantity_type::from_value((std::numeric_limits<T>::lowest)())); }
36+
#endif
3337
static const int digits = std::numeric_limits<T>::digits;
3438
static const int digits10 = std::numeric_limits<T>::digits10;
39+
#ifndef BOOST_NO_CXX11_NUMERIC_LIMITS
40+
static const int max_digits10 = std::numeric_limits<T>::max_digits10;
41+
#endif
3542
static const bool is_signed = std::numeric_limits<T>::is_signed;
3643
static const bool is_integer = std::numeric_limits<T>::is_integer;
3744
static const bool is_exact = std::numeric_limits<T>::is_exact;

test/test_limits.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,16 @@ void do_check() {
8080
CHECK_FUNCTION(round_error);
8181
CHECK_FUNCTION(infinity);
8282
CHECK_FUNCTION(denorm_min);
83+
#ifndef BOOST_NO_CXX11_NUMERIC_LIMITS
84+
CHECK_FUNCTION(lowest);
85+
#endif
8386

8487
CHECK_CONSTANT(is_specialized);
8588
CHECK_CONSTANT(digits);
8689
CHECK_CONSTANT(digits10);
90+
#ifndef BOOST_NO_CXX11_NUMERIC_LIMITS
91+
CHECK_CONSTANT(max_digits10);
92+
#endif
8793
CHECK_CONSTANT(is_signed);
8894
CHECK_CONSTANT(is_integer);
8995
CHECK_CONSTANT(is_exact);

0 commit comments

Comments
 (0)