#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 __glibcpp_char_bits == 8
#define __glibcpp_signed_char_min __glibcpp_s8_min
#define __glibcpp_signed_char_max __glibcpp_s8_max
#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 __glibcpp_short_bits == 8
#define __glibcpp_signed_short_min __glibcpp_s8_min
#define __glibcpp_signed_short_max __glibcpp_s8_max
#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 __glibcpp_int_bits == 8
#define __glibcpp_signed_int_min __glibcpp_s8_min
#define __glibcpp_signed_int_max __glibcpp_s8_max
#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 __glibcpp_long_bits == 8
#define __glibcpp_signed_long_min __glibcpp_s8_min
#define __glibcpp_signed_long_max __glibcpp_s8_max
#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 __glibcpp_long_long_bits == 8
#define __glibcpp_signed_long_long_min __glibcpp_s8_min
#define __glibcpp_signed_long_long_max __glibcpp_s8_max
// 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_bits == 8
#define __glibcpp_wchar_t_min __glibcpp_s8_min
static const bool is_iec559 = false;
static const bool is_bounded = true;
- static const bool is_modulo = false;
+ static const bool is_modulo = __glibcpp_char_is_modulo;
- static const bool traps = __glibcpp_signed_char_traps;
+ static const bool traps = __glibcpp_char_traps;
static const bool tinyness_before = false;
static const float_round_style round_style = round_toward_zero;
};
#undef __glibcpp_char_digits
#undef __glibcpp_char_digits10
#undef __glibcpp_char_is_signed
+#undef __glibcpp_char_is_modulo
#undef __glibcpp_char_traps
+
template<>
struct numeric_limits<signed char>
{
static const bool is_iec559 = false;
static const bool is_bounded = true;
- static const bool is_modulo = false;
+ static const bool is_modulo = __glibcpp_signed_char_is_modulo;
static const bool traps = __glibcpp_signed_char_traps;
static const bool tinyness_before = false;
#undef __glibcpp_signed_char_max
#undef __glibcpp_signed_char_digits
#undef __glibcpp_signed_char_digits10
+#undef __glibcpp_signed_char_is_modulo
#undef __glibcpp_signed_char_traps
template<>
static const bool is_iec559 = false;
static const bool is_bounded = true;
- static const bool is_modulo = false;
+ static const bool is_modulo = __glibcpp_wchar_t_is_modulo;
static const bool traps = __glibcpp_wchar_t_traps;
static const bool tinyness_before = false;
#undef __glibcpp_wchar_t_digits
#undef __glibcpp_wchar_t_digits10
#undef __glibcpp_wchar_t_is_signed
+#undef __glibcpp_wchar_t_is_modulo
#undef __glibcpp_wchar_t_traps
template<>
static const bool is_iec559 = true;
static const bool is_bounded = true;
- static const bool is_modulo = false;
+ static const bool is_modulo = __glibcpp_signed_short_is_modulo;
static const bool traps = __glibcpp_signed_short_traps;
static const bool tinyness_before = false;
#undef __glibcpp_signed_short_max
#undef __glibcpp_signed_short_digits
#undef __glibcpp_signed_short_digits10
+#undef __glibcpp_signed_short_is_modulo
#undef __glibcpp_signed_short_traps
template<>
static const bool is_iec559 = true;
static const bool is_bounded = true;
- static const bool is_modulo = false;
+ static const bool is_modulo = __glibcpp_signed_int_is_modulo;
static const bool traps = __glibcpp_signed_int_traps;
static const bool tinyness_before = false;
#undef __glibcpp_signed_int_max
#undef __glibcpp_signed_int_digits
#undef __glibcpp_signed_int_digits10
+#undef __glibcpp_signed_int_is_modulo
#undef __glibcpp_signed_int_traps
template<>
static const bool is_iec559 = true;
static const bool is_bounded = true;
- static const bool is_modulo = false;
+ static const bool is_modulo = __glibcpp_signed_long_is_modulo;
static const bool traps = __glibcpp_signed_long_traps;
static const bool tinyness_before = false;
#undef __glibcpp_signed_long_max
#undef __glibcpp_signed_long_digits
#undef __glibcpp_signed_long_digits10
+#undef __glibcpp_signed_long_is_modulo
#undef __glibcpp_signed_long_traps
template<>
static const bool is_iec559 = true;
static const bool is_bounded = true;
- static const bool is_modulo = false;
+ static const bool is_modulo = __glibcpp_signed_long_long_is_modulo;
static const bool traps = __glibcpp_signed_long_long_traps;
static const bool tinyness_before = false;
#undef __glibcpp_signed_long_long_max
#undef __glibcpp_signed_long_long_digits
#undef __glibcpp_signed_long_long_digits10
+#undef __glibcpp_signed_long_long_is_modulo
#undef __glibcpp_signed_long_long_traps
template<>