From cba6dfc843af5480bba2bc7158eb70f69495f9d1 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Mon, 23 Jul 2001 16:41:03 +0000 Subject: [PATCH] limits_generic.h (int): Set digits and digits10 appropriately for word size. * include/bits/limits_generic.h (int): Set digits and digits10 appropriately for word size. (unsigned int,long,unsigned long): Likewise. From-SVN: r44271 --- libstdc++-v3/ChangeLog | 6 +++++ libstdc++-v3/include/bits/limits_generic.h | 26 ++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0e0c8472cca..e4df055070d 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2001-07-23 David Edelsohn + + * include/bits/limits_generic.h (int): Set digits and digits10 + appropriately for word size. + (unsigned int,long,unsigned long): Likewise. + 2001-07-19 Peter Schmid * include/bits/stl_algo.h : Fix typos. diff --git a/libstdc++-v3/include/bits/limits_generic.h b/libstdc++-v3/include/bits/limits_generic.h index 42cae71a770..a5dd2996310 100644 --- a/libstdc++-v3/include/bits/limits_generic.h +++ b/libstdc++-v3/include/bits/limits_generic.h @@ -469,8 +469,13 @@ namespace std { static int max() throw() { return INT_MAX; } +#if INT_MAX > 32767 static const int digits = 31; static const int digits10 = 9; +#else + static const int digits = 15; + static const int digits10 = 4; +#endif static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; @@ -517,8 +522,13 @@ namespace std { static unsigned int max() throw() { return UINT_MAX; } +#if INT_MAX > 32767 static const int digits = 32; static const int digits10 = 9; +#else + static const int digits = 16; + static const int digits10 = 4; +#endif static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; @@ -565,8 +575,16 @@ namespace std { static long max() throw() { return LONG_MAX; } +#if LONG_MAX > 2147483647 + static const int digits = 63; + static const int digits10 = 18; +#elif LONG_MAX > 32767 static const int digits = 31; static const int digits10 = 9; +#else + static const int digits = 15; + static const int digits10 = 4; +#endif static const bool is_signed = true; static const bool is_integer = true; static const bool is_exact = true; @@ -613,8 +631,16 @@ namespace std { static unsigned long max() throw() { return ULONG_MAX; } +#if LONG_MAX > 2147483647 + static const int digits = 64; + static const int digits10 = 19; +#elif LONG_MAX > 32767 static const int digits = 32; static const int digits10 = 9; +#else + static const int digits = 16; + static const int digits10 = 4; +#endif static const bool is_signed = false; static const bool is_integer = true; static const bool is_exact = true; -- 2.30.2