Commit da28539c by Richard Henderson Committed by Richard Henderson

std_limits.h (__glibcpp_integral_traps): New.

        * include/std/std_limits.h (__glibcpp_integral_traps): New.
        (__glibcpp_char_traps, __glibcpp_short_traps, __glibcpp_int_traps,
        __glibcpp_long_traps, __glibcpp_wchar_t_traps,
        __glibcpp_long_long_traps, __glibcpp_plain_char_traps,
        __glibcpp_signed_char_traps, __glibcpp_unsigned_char_traps,
        __glibcpp_signed_short_traps, __glibcpp_unsigned_short_traps,
        __glibcpp_signed_int_traps, __glibcpp_unsigned_int_traps,
        __glibcpp_signed_long_traps, __glibcpp_unsigned_long_traps,
        __glibcpp_signed_long_long_traps, __glibcpp_unsigned_long_long_traps,
        __glibcpp_char_is_modulo, __glibcpp_signed_char_is_modulo,
        __glibcpp_signed_short_is_modulo, __glibcpp_signed_int_is_modulo,
        __glibcpp_signed_long_is_modulo, __glibcpp_signed_long_long_is_modulo,
        __glibcpp_wchar_t_is_modulo, __glibcpp_float_is_bounded,
        __glibcpp_double_is_bounded, __glibcpp_long_double_is_bounded): Kill.
        (numeric_limits<T>::traps, T integral): Use __glibcpp_integral_traps.
        (numeric_limits<T>::is_modulo, T integral): Use true.
        (numeric_limits<T>::is_bounded, T floating): Use true.

From-SVN: r57414
parent cf2214db
...@@ -19,6 +19,24 @@ ...@@ -19,6 +19,24 @@
(numeric_limits<float>::is_iec559): Use has_infinity & has_quiet_NaN. (numeric_limits<float>::is_iec559): Use has_infinity & has_quiet_NaN.
(numeric_limits<double>, numeric_limits<long double>): Similarly. (numeric_limits<double>, numeric_limits<long double>): Similarly.
* include/std/std_limits.h (__glibcpp_integral_traps): New.
(__glibcpp_char_traps, __glibcpp_short_traps, __glibcpp_int_traps,
__glibcpp_long_traps, __glibcpp_wchar_t_traps,
__glibcpp_long_long_traps, __glibcpp_plain_char_traps,
__glibcpp_signed_char_traps, __glibcpp_unsigned_char_traps,
__glibcpp_signed_short_traps, __glibcpp_unsigned_short_traps,
__glibcpp_signed_int_traps, __glibcpp_unsigned_int_traps,
__glibcpp_signed_long_traps, __glibcpp_unsigned_long_traps,
__glibcpp_signed_long_long_traps, __glibcpp_unsigned_long_long_traps,
__glibcpp_char_is_modulo, __glibcpp_signed_char_is_modulo,
__glibcpp_signed_short_is_modulo, __glibcpp_signed_int_is_modulo,
__glibcpp_signed_long_is_modulo, __glibcpp_signed_long_long_is_modulo,
__glibcpp_wchar_t_is_modulo, __glibcpp_float_is_bounded,
__glibcpp_double_is_bounded, __glibcpp_long_double_is_bounded): Kill.
(numeric_limits<T>::traps, T integral): Use __glibcpp_integral_traps.
(numeric_limits<T>::is_modulo, T integral): Use true.
(numeric_limits<T>::is_bounded, T floating): Use true.
2002-09-18 Loren J. Rittle <ljrittle@acm.org> 2002-09-18 Loren J. Rittle <ljrittle@acm.org>
* testsuite/18_support/numeric_limits.cc (test_epsilon): New. * testsuite/18_support/numeric_limits.cc (test_epsilon): New.
......
...@@ -92,23 +92,11 @@ ...@@ -92,23 +92,11 @@
// These values can be overridden in the target configuration file. // These values can be overridden in the target configuration file.
// The default values are appropriate for many 32-bit targets. // The default values are appropriate for many 32-bit targets.
#ifndef __glibcpp_char_traps // GCC only intrinsicly supports modulo integral types. The only remaining
# define __glibcpp_char_traps true // integral exceptional values is division by zero. Only targets that do not
#endif // signal division by zero in some "hard to ignore" way should use false.
#ifndef __glibcpp_short_traps #ifndef __glibcpp_integral_traps
# define __glibcpp_short_traps true # define __glibcpp_integral_traps true
#endif
#ifndef __glibcpp_int_traps
# define __glibcpp_int_traps true
#endif
#ifndef __glibcpp_long_traps
# define __glibcpp_long_traps true
#endif
#ifndef __glibcpp_wchar_t_traps
# define __glibcpp_wchar_t_traps true
#endif
#ifndef __glibcpp_long_long_traps
# define __glibcpp_long_long_traps true
#endif #endif
// You should not need to define any macros below this point, unless // You should not need to define any macros below this point, unless
...@@ -151,7 +139,7 @@ ...@@ -151,7 +139,7 @@
#define __glibcpp_u64_digits10 19 #define __glibcpp_u64_digits10 19
// bool-specific hooks: // bool-specific hooks:
// __glibcpp_bool_digits __glibcpp_int_traps __glibcpp_long_traps // __glibcpp_bool_digits
#ifndef __glibcpp_bool_digits #ifndef __glibcpp_bool_digits
# define __glibcpp_bool_digits 1 # define __glibcpp_bool_digits 1
...@@ -159,15 +147,6 @@ ...@@ -159,15 +147,6 @@
// char. // char.
#define __glibcpp_plain_char_traps true
#define __glibcpp_signed_char_traps true
#define __glibcpp_unsigned_char_traps true
#ifndef __glibcpp_char_is_modulo
# define __glibcpp_char_is_modulo true
#endif
#ifndef __glibcpp_signed_char_is_modulo
# define __glibcpp_signed_char_is_modulo true
#endif
#if __CHAR_BIT__ == 8 #if __CHAR_BIT__ == 8
# define __glibcpp_signed_char_min __glibcpp_s8_min # define __glibcpp_signed_char_min __glibcpp_s8_min
# define __glibcpp_signed_char_max __glibcpp_s8_max # define __glibcpp_signed_char_max __glibcpp_s8_max
...@@ -222,11 +201,6 @@ ...@@ -222,11 +201,6 @@
// short // short
#define __glibcpp_signed_short_traps true
#define __glibcpp_unsigned_short_traps true
#ifndef __glibcpp_signed_short_is_modulo
# define __glibcpp_signed_short_is_modulo true
#endif
#if __SHRT_BIT__ == 8 #if __SHRT_BIT__ == 8
# define __glibcpp_signed_short_min __glibcpp_s8_min # define __glibcpp_signed_short_min __glibcpp_s8_min
# define __glibcpp_signed_short_max __glibcpp_s8_max # define __glibcpp_signed_short_max __glibcpp_s8_max
...@@ -269,11 +243,6 @@ ...@@ -269,11 +243,6 @@
// int // int
#define __glibcpp_signed_int_traps true
#define __glibcpp_unsigned_int_traps true
#ifndef __glibcpp_signed_int_is_modulo
# define __glibcpp_signed_int_is_modulo true
#endif
#if __INT_BIT__ == 8 #if __INT_BIT__ == 8
# define __glibcpp_signed_int_min __glibcpp_s8_min # define __glibcpp_signed_int_min __glibcpp_s8_min
# define __glibcpp_signed_int_max __glibcpp_s8_max # define __glibcpp_signed_int_max __glibcpp_s8_max
...@@ -316,11 +285,6 @@ ...@@ -316,11 +285,6 @@
// long // long
#define __glibcpp_signed_long_traps true
#define __glibcpp_unsigned_long_traps true
#ifndef __glibcpp_signed_long_is_modulo
# define __glibcpp_signed_long_is_modulo true
#endif
#if __LONG_BIT__ == 8 #if __LONG_BIT__ == 8
# define __glibcpp_signed_long_min __glibcpp_s8_min # define __glibcpp_signed_long_min __glibcpp_s8_min
# define __glibcpp_signed_long_max __glibcpp_s8_max # define __glibcpp_signed_long_max __glibcpp_s8_max
...@@ -363,11 +327,6 @@ ...@@ -363,11 +327,6 @@
// long long // long long
#define __glibcpp_signed_long_long_traps true
#define __glibcpp_signed_long_long_traps true
#ifndef __glibcpp_signed_long_long_is_modulo
# define __glibcpp_signed_long_long_is_modulo true
#endif
#if __LONG_LONG_BIT__ == 8 #if __LONG_LONG_BIT__ == 8
# define __glibcpp_signed_long_long_min __glibcpp_s8_min # define __glibcpp_signed_long_long_min __glibcpp_s8_min
# define __glibcpp_signed_long_long_max __glibcpp_s8_max # define __glibcpp_signed_long_long_max __glibcpp_s8_max
...@@ -400,22 +359,16 @@ ...@@ -400,22 +359,16 @@
# define __glibcpp_signed_long_long_max __glibcpp_s64_max # define __glibcpp_signed_long_long_max __glibcpp_s64_max
# define __glibcpp_signed_long_long_digits __glibcpp_s64_digits # define __glibcpp_signed_long_long_digits __glibcpp_s64_digits
# define __glibcpp_signed_long_long_digits10 __glibcpp_s64_digits10 # define __glibcpp_signed_long_long_digits10 __glibcpp_s64_digits10
# define __glibcpp_signed_long_long_traps true
# define __glibcpp_unsigned_long_long_min __glibcpp_u64_min # define __glibcpp_unsigned_long_long_min __glibcpp_u64_min
# define __glibcpp_unsigned_long_long_max __glibcpp_u64_max # define __glibcpp_unsigned_long_long_max __glibcpp_u64_max
# define __glibcpp_unsigned_long_long_digits __glibcpp_u64_digits # define __glibcpp_unsigned_long_long_digits __glibcpp_u64_digits
# define __glibcpp_unsigned_long_long_digits10 __glibcpp_u64_digits10 # define __glibcpp_unsigned_long_long_digits10 __glibcpp_u64_digits10
# define __glibcpp_unsigned_long_long_traps true
#else #else
// You must define these macros in the configuration file. // You must define these macros in the configuration file.
#endif #endif
// wchar_t // wchar_t
#define __glibcpp_wchar_t_traps true
#ifndef __glibcpp_wchar_t_is_modulo
# define __glibcpp_wchar_t_is_modulo true
#endif
#if __glibcpp_wchar_t_is_signed #if __glibcpp_wchar_t_is_signed
# if __WCHAR_BIT__ == 8 # if __WCHAR_BIT__ == 8
# define __glibcpp_wchar_t_min __glibcpp_s8_min # define __glibcpp_wchar_t_min __glibcpp_s8_min
...@@ -475,10 +428,6 @@ ...@@ -475,10 +428,6 @@
# define __glibcpp_float_has_denorm_loss false # define __glibcpp_float_has_denorm_loss false
#endif #endif
#ifndef __glibcpp_float_is_bounded
# define __glibcpp_float_is_bounded true
#endif
#ifndef __glibcpp_float_is_modulo #ifndef __glibcpp_float_is_modulo
# define __glibcpp_float_is_modulo false # define __glibcpp_float_is_modulo false
#endif #endif
...@@ -499,10 +448,6 @@ ...@@ -499,10 +448,6 @@
# define __glibcpp_double_has_denorm_loss false # define __glibcpp_double_has_denorm_loss false
#endif #endif
#ifndef __glibcpp_double_is_bounded
# define __glibcpp_double_is_bounded true
#endif
#ifndef __glibcpp_double_is_modulo #ifndef __glibcpp_double_is_modulo
# define __glibcpp_double_is_modulo false # define __glibcpp_double_is_modulo false
#endif #endif
...@@ -523,10 +468,6 @@ ...@@ -523,10 +468,6 @@
# define __glibcpp_long_double_has_denorm_loss false # define __glibcpp_long_double_has_denorm_loss false
#endif #endif
#ifndef __glibcpp_long_double_is_bounded
# define __glibcpp_long_double_is_bounded true
#endif
#ifndef __glibcpp_long_double_is_modulo #ifndef __glibcpp_long_double_is_modulo
# define __glibcpp_long_double_is_modulo false # define __glibcpp_long_double_is_modulo false
#endif #endif
...@@ -698,8 +639,7 @@ namespace std ...@@ -698,8 +639,7 @@ namespace std
// It is not clear what it means for a boolean type to trap. // It is not clear what it means for a boolean type to trap.
// This is a DR on the LWG issue list. Here, I use integer // This is a DR on the LWG issue list. Here, I use integer
// promotion semantics. // promotion semantics.
static const bool traps = __glibcpp_signed_int_traps static const bool traps = __glibcpp_integral_traps;
|| __glibcpp_signed_long_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -749,9 +689,9 @@ namespace std ...@@ -749,9 +689,9 @@ namespace std
static const bool is_iec559 = false; static const bool is_iec559 = false;
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = __glibcpp_char_is_modulo; static const bool is_modulo = true;
static const bool traps = __glibcpp_char_traps; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -761,8 +701,6 @@ namespace std ...@@ -761,8 +701,6 @@ namespace std
#undef __glibcpp_char_digits #undef __glibcpp_char_digits
#undef __glibcpp_char_digits10 #undef __glibcpp_char_digits10
#undef __glibcpp_char_is_signed #undef __glibcpp_char_is_signed
#undef __glibcpp_char_is_modulo
#undef __glibcpp_char_traps
...@@ -809,9 +747,9 @@ namespace std ...@@ -809,9 +747,9 @@ namespace std
static const bool is_iec559 = false; static const bool is_iec559 = false;
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = __glibcpp_signed_char_is_modulo; static const bool is_modulo = true;
static const bool traps = __glibcpp_signed_char_traps; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -820,8 +758,6 @@ namespace std ...@@ -820,8 +758,6 @@ namespace std
#undef __glibcpp_signed_char_max #undef __glibcpp_signed_char_max
#undef __glibcpp_signed_char_digits #undef __glibcpp_signed_char_digits
#undef __glibcpp_signed_char_digits10 #undef __glibcpp_signed_char_digits10
#undef __glibcpp_signed_char_is_modulo
#undef __glibcpp_signed_char_traps
template<> template<>
struct numeric_limits<unsigned char> struct numeric_limits<unsigned char>
...@@ -868,7 +804,7 @@ namespace std ...@@ -868,7 +804,7 @@ namespace std
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = true; static const bool is_modulo = true;
static const bool traps = __glibcpp_unsigned_char_traps; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -876,7 +812,6 @@ namespace std ...@@ -876,7 +812,6 @@ namespace std
#undef __glibcpp_unsigned_char_max #undef __glibcpp_unsigned_char_max
#undef __glibcpp_unsigned_char_digits #undef __glibcpp_unsigned_char_digits
#undef __glibcpp_unsigned_char_digits10 #undef __glibcpp_unsigned_char_digits10
#undef __glibcpp_unsigned_char_traps
template<> template<>
struct numeric_limits<wchar_t> struct numeric_limits<wchar_t>
...@@ -921,9 +856,9 @@ namespace std ...@@ -921,9 +856,9 @@ namespace std
static const bool is_iec559 = false; static const bool is_iec559 = false;
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = __glibcpp_wchar_t_is_modulo; static const bool is_modulo = true;
static const bool traps = __glibcpp_wchar_t_traps; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -933,8 +868,6 @@ namespace std ...@@ -933,8 +868,6 @@ namespace std
#undef __glibcpp_wchar_t_digits #undef __glibcpp_wchar_t_digits
#undef __glibcpp_wchar_t_digits10 #undef __glibcpp_wchar_t_digits10
#undef __glibcpp_wchar_t_is_signed #undef __glibcpp_wchar_t_is_signed
#undef __glibcpp_wchar_t_is_modulo
#undef __glibcpp_wchar_t_traps
template<> template<>
struct numeric_limits<short> struct numeric_limits<short>
...@@ -979,9 +912,9 @@ namespace std ...@@ -979,9 +912,9 @@ namespace std
static const bool is_iec559 = true; static const bool is_iec559 = true;
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = __glibcpp_signed_short_is_modulo; static const bool is_modulo = true;
static const bool traps = __glibcpp_signed_short_traps; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -990,8 +923,6 @@ namespace std ...@@ -990,8 +923,6 @@ namespace std
#undef __glibcpp_signed_short_max #undef __glibcpp_signed_short_max
#undef __glibcpp_signed_short_digits #undef __glibcpp_signed_short_digits
#undef __glibcpp_signed_short_digits10 #undef __glibcpp_signed_short_digits10
#undef __glibcpp_signed_short_is_modulo
#undef __glibcpp_signed_short_traps
template<> template<>
struct numeric_limits<unsigned short> struct numeric_limits<unsigned short>
...@@ -1038,7 +969,7 @@ namespace std ...@@ -1038,7 +969,7 @@ namespace std
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = true; static const bool is_modulo = true;
static const bool traps = __glibcpp_unsigned_short_traps; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -1046,7 +977,6 @@ namespace std ...@@ -1046,7 +977,6 @@ namespace std
#undef __glibcpp_unsigned_short_max #undef __glibcpp_unsigned_short_max
#undef __glibcpp_unsigned_short_digits #undef __glibcpp_unsigned_short_digits
#undef __glibcpp_unsigned_short_digits10 #undef __glibcpp_unsigned_short_digits10
#undef __glibcpp_unsigned_short_traps
template<> template<>
struct numeric_limits<int> struct numeric_limits<int>
...@@ -1091,9 +1021,9 @@ namespace std ...@@ -1091,9 +1021,9 @@ namespace std
static const bool is_iec559 = true; static const bool is_iec559 = true;
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = __glibcpp_signed_int_is_modulo; static const bool is_modulo = true;
static const bool traps = __glibcpp_signed_int_traps; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -1102,8 +1032,6 @@ namespace std ...@@ -1102,8 +1032,6 @@ namespace std
#undef __glibcpp_signed_int_max #undef __glibcpp_signed_int_max
#undef __glibcpp_signed_int_digits #undef __glibcpp_signed_int_digits
#undef __glibcpp_signed_int_digits10 #undef __glibcpp_signed_int_digits10
#undef __glibcpp_signed_int_is_modulo
#undef __glibcpp_signed_int_traps
template<> template<>
struct numeric_limits<unsigned int> struct numeric_limits<unsigned int>
...@@ -1150,7 +1078,7 @@ namespace std ...@@ -1150,7 +1078,7 @@ namespace std
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = true; static const bool is_modulo = true;
static const bool traps = __glibcpp_unsigned_int_traps; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -1158,7 +1086,6 @@ namespace std ...@@ -1158,7 +1086,6 @@ namespace std
#undef __glibcpp_unsigned_int_max #undef __glibcpp_unsigned_int_max
#undef __glibcpp_unsigned_int_digits #undef __glibcpp_unsigned_int_digits
#undef __glibcpp_unsigned_int_digits10 #undef __glibcpp_unsigned_int_digits10
#undef __glibcpp_unsigned_int_traps
template<> template<>
struct numeric_limits<long> struct numeric_limits<long>
...@@ -1203,9 +1130,9 @@ namespace std ...@@ -1203,9 +1130,9 @@ namespace std
static const bool is_iec559 = true; static const bool is_iec559 = true;
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = __glibcpp_signed_long_is_modulo; static const bool is_modulo = true;
static const bool traps = __glibcpp_signed_long_traps; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -1214,8 +1141,6 @@ namespace std ...@@ -1214,8 +1141,6 @@ namespace std
#undef __glibcpp_signed_long_max #undef __glibcpp_signed_long_max
#undef __glibcpp_signed_long_digits #undef __glibcpp_signed_long_digits
#undef __glibcpp_signed_long_digits10 #undef __glibcpp_signed_long_digits10
#undef __glibcpp_signed_long_is_modulo
#undef __glibcpp_signed_long_traps
template<> template<>
struct numeric_limits<unsigned long> struct numeric_limits<unsigned long>
...@@ -1262,7 +1187,7 @@ namespace std ...@@ -1262,7 +1187,7 @@ namespace std
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = true; static const bool is_modulo = true;
static const bool traps = __glibcpp_unsigned_long_traps; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -1270,7 +1195,6 @@ namespace std ...@@ -1270,7 +1195,6 @@ namespace std
#undef __glibcpp_unsigned_long_max #undef __glibcpp_unsigned_long_max
#undef __glibcpp_unsigned_long_digits #undef __glibcpp_unsigned_long_digits
#undef __glibcpp_unsigned_long_digits10 #undef __glibcpp_unsigned_long_digits10
#undef __glibcpp_unsigned_long_traps
template<> template<>
struct numeric_limits<long long> struct numeric_limits<long long>
...@@ -1315,9 +1239,9 @@ namespace std ...@@ -1315,9 +1239,9 @@ namespace std
static const bool is_iec559 = true; static const bool is_iec559 = true;
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = __glibcpp_signed_long_long_is_modulo; static const bool is_modulo = true;
static const bool traps = __glibcpp_signed_long_long_traps; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -1326,8 +1250,6 @@ namespace std ...@@ -1326,8 +1250,6 @@ namespace std
#undef __glibcpp_signed_long_long_max #undef __glibcpp_signed_long_long_max
#undef __glibcpp_signed_long_long_digits #undef __glibcpp_signed_long_long_digits
#undef __glibcpp_signed_long_long_digits10 #undef __glibcpp_signed_long_long_digits10
#undef __glibcpp_signed_long_long_is_modulo
#undef __glibcpp_signed_long_long_traps
template<> template<>
struct numeric_limits<unsigned long long> struct numeric_limits<unsigned long long>
...@@ -1374,7 +1296,7 @@ namespace std ...@@ -1374,7 +1296,7 @@ namespace std
static const bool is_bounded = true; static const bool is_bounded = true;
static const bool is_modulo = true; static const bool is_modulo = true;
static const bool traps = true; static const bool traps = __glibcpp_integral_traps;
static const bool tinyness_before = false; static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero; static const float_round_style round_style = round_toward_zero;
}; };
...@@ -1382,7 +1304,6 @@ namespace std ...@@ -1382,7 +1304,6 @@ namespace std
#undef __glibcpp_unsigned_long_long_max #undef __glibcpp_unsigned_long_long_max
#undef __glibcpp_unsigned_long_long_digits #undef __glibcpp_unsigned_long_long_digits
#undef __glibcpp_unsigned_long_long_digits10 #undef __glibcpp_unsigned_long_long_digits10
#undef __glibcpp_unsigned_long_long_traps
template<> template<>
struct numeric_limits<float> struct numeric_limits<float>
...@@ -1429,7 +1350,7 @@ namespace std ...@@ -1429,7 +1350,7 @@ namespace std
{ return __FLT_DENORM_MIN__; } { return __FLT_DENORM_MIN__; }
static const bool is_iec559 = has_infinity && has_quiet_NaN; static const bool is_iec559 = has_infinity && has_quiet_NaN;
static const bool is_bounded = __glibcpp_float_is_bounded; static const bool is_bounded = true;
static const bool is_modulo = __glibcpp_float_is_modulo; static const bool is_modulo = __glibcpp_float_is_modulo;
static const bool traps = __glibcpp_float_traps; static const bool traps = __glibcpp_float_traps;
...@@ -1438,7 +1359,6 @@ namespace std ...@@ -1438,7 +1359,6 @@ namespace std
}; };
#undef __glibcpp_float_has_denorm_loss #undef __glibcpp_float_has_denorm_loss
#undef __glibcpp_float_is_bounded
#undef __glibcpp_float_is_modulo #undef __glibcpp_float_is_modulo
#undef __glibcpp_float_traps #undef __glibcpp_float_traps
#undef __glibcpp_float_tinyness_before #undef __glibcpp_float_tinyness_before
...@@ -1488,7 +1408,7 @@ namespace std ...@@ -1488,7 +1408,7 @@ namespace std
{ return __DBL_DENORM_MIN__; } { return __DBL_DENORM_MIN__; }
static const bool is_iec559 = has_infinity && has_quiet_NaN; static const bool is_iec559 = has_infinity && has_quiet_NaN;
static const bool is_bounded = __glibcpp_double_is_bounded; static const bool is_bounded = true;
static const bool is_modulo = __glibcpp_double_is_modulo; static const bool is_modulo = __glibcpp_double_is_modulo;
static const bool traps = __glibcpp_double_traps; static const bool traps = __glibcpp_double_traps;
...@@ -1497,7 +1417,6 @@ namespace std ...@@ -1497,7 +1417,6 @@ namespace std
}; };
#undef __glibcpp_double_has_denorm_loss #undef __glibcpp_double_has_denorm_loss
#undef __glibcpp_double_is_bounded
#undef __glibcpp_double_is_modulo #undef __glibcpp_double_is_modulo
#undef __glibcpp_double_traps #undef __glibcpp_double_traps
#undef __glibcpp_double_tinyness_before #undef __glibcpp_double_tinyness_before
...@@ -1549,7 +1468,7 @@ namespace std ...@@ -1549,7 +1468,7 @@ namespace std
{ return __LDBL_DENORM_MIN__; } { return __LDBL_DENORM_MIN__; }
static const bool is_iec559 = has_infinity && has_quiet_NaN; static const bool is_iec559 = has_infinity && has_quiet_NaN;
static const bool is_bounded = __glibcpp_long_double_is_bounded; static const bool is_bounded = true;
static const bool is_modulo = __glibcpp_long_double_is_modulo; static const bool is_modulo = __glibcpp_long_double_is_modulo;
static const bool traps = __glibcpp_long_double_traps; static const bool traps = __glibcpp_long_double_traps;
...@@ -1558,7 +1477,6 @@ namespace std ...@@ -1558,7 +1477,6 @@ namespace std
}; };
#undef __glibcpp_long_double_has_denorm_loss #undef __glibcpp_long_double_has_denorm_loss
#undef __glibcpp_long_double_is_bounded
#undef __glibcpp_long_double_is_modulo #undef __glibcpp_long_double_is_modulo
#undef __glibcpp_long_double_traps #undef __glibcpp_long_double_traps
#undef __glibcpp_long_double_tinyness_before #undef __glibcpp_long_double_tinyness_before
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment