diff --git a/include/boost/type_traits/is_signed.hpp b/include/boost/type_traits/is_signed.hpp index 9546097..b283b21 100644 --- a/include/boost/type_traits/is_signed.hpp +++ b/include/boost/type_traits/is_signed.hpp @@ -62,8 +62,6 @@ struct is_signed_select_helper }; }; -} - template struct is_signed { @@ -73,6 +71,10 @@ struct is_signed BOOST_STATIC_CONSTANT(bool, value = type::value); }; +} + +template struct is_signed : public integral_constant::value> {}; + #else template struct is_signed : public false_type{}; diff --git a/include/boost/type_traits/is_unsigned.hpp b/include/boost/type_traits/is_unsigned.hpp index 29d30e9..7243771 100644 --- a/include/boost/type_traits/is_unsigned.hpp +++ b/include/boost/type_traits/is_unsigned.hpp @@ -42,7 +42,7 @@ struct is_ununsigned_helper }; template -struct is_ununsigned_select_helper +struct is_unsigned_select_helper { template struct rebind @@ -52,7 +52,7 @@ struct is_ununsigned_select_helper }; template <> -struct is_ununsigned_select_helper +struct is_unsigned_select_helper { template struct rebind @@ -61,17 +61,19 @@ struct is_ununsigned_select_helper }; }; -} // namespace detail - template struct is_unsigned { - typedef detail::is_ununsigned_select_helper< ::boost::is_integral::value || ::boost::is_enum::value > selector; + typedef detail::is_unsigned_select_helper< ::boost::is_integral::value || ::boost::is_enum::value > selector; typedef typename selector::template rebind binder; typedef typename binder::type type; BOOST_STATIC_CONSTANT(bool, value = type::value); }; +} // namespace detail + +template struct is_unsigned : public integral_constant::value> {}; + #else template struct is_unsigned : public false_type{};