diff --git a/libstdc++-v3/include/ext/numeric_traits.h b/libstdc++-v3/include/ext/numeric_traits.h index c29f9f21d1a..2cac7f1d1ed 100644 --- a/libstdc++-v3/include/ext/numeric_traits.h +++ b/libstdc++-v3/include/ext/numeric_traits.h @@ -176,19 +176,32 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template const int __numeric_traits_floating<_Value>::__max_exponent10; - template - struct __numeric_traits - : public __conditional_type<__is_integer_nonstrict<_Value>::__value, - __numeric_traits_integer<_Value>, - __numeric_traits_floating<_Value> >::__type - { }; - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - #undef __glibcxx_floating #undef __glibcxx_max_digits10 #undef __glibcxx_digits10 #undef __glibcxx_max_exponent10 + template + struct __numeric_traits + : public __numeric_traits_integer<_Value> + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; + + template<> + struct __numeric_traits + : public __numeric_traits_floating + { }; + +_GLIBCXX_END_NAMESPACE_VERSION +} // namespace + #endif