X-Git-Url: https://git.donarmstrong.com/?p=rsem.git;a=blobdiff_plain;f=boost%2Ftype_traits%2Fis_unsigned.hpp;h=0602838a33fca4725ed9b96792caec59420f9ad8;hp=98baf4e94e38130b825720c20b639fc516d4f14e;hb=2d71eb92104693ca9baa5a2e1c23eeca776d8fd3;hpb=da57529b92adbb7ae74a89861cb39fb35ac7c62d diff --git a/boost/type_traits/is_unsigned.hpp b/boost/type_traits/is_unsigned.hpp index 98baf4e..0602838 100644 --- a/boost/type_traits/is_unsigned.hpp +++ b/boost/type_traits/is_unsigned.hpp @@ -24,14 +24,19 @@ namespace boost { namespace detail{ -#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238) +#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238) && !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) template struct is_unsigned_values { + // + // Note that we cannot use BOOST_STATIC_CONSTANT here, using enum's + // rather than "real" static constants simply doesn't work or give + // the correct answer. + // typedef typename remove_cv::type no_cv_t; - BOOST_STATIC_CONSTANT(no_cv_t, minus_one = (static_cast(-1))); - BOOST_STATIC_CONSTANT(no_cv_t, zero = (static_cast(0))); + static const no_cv_t minus_one = (static_cast(-1)); + static const no_cv_t zero = (static_cast(0)); }; template @@ -104,7 +109,7 @@ template <> struct is_unsigned_imp : public true_type{}; template <> struct is_unsigned_imp : public true_type{}; template <> struct is_unsigned_imp : public true_type{}; #endif -#if defined(WCHAR_MIN) && (WCHAR_MIN == 0) +#if defined(WCHAR_MIN) && (WCHAR_MIN == 0) && !defined(BOOST_NO_INTRINSIC_WCHAR_T) template <> struct is_unsigned_imp : public true_type{}; template <> struct is_unsigned_imp : public true_type{}; template <> struct is_unsigned_imp : public true_type{};