summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/Boost/src/boost/type_traits/make_unsigned.hpp')
-rw-r--r--3rdParty/Boost/src/boost/type_traits/make_unsigned.hpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/3rdParty/Boost/src/boost/type_traits/make_unsigned.hpp b/3rdParty/Boost/src/boost/type_traits/make_unsigned.hpp
index 54f9f66..239153a 100644
--- a/3rdParty/Boost/src/boost/type_traits/make_unsigned.hpp
+++ b/3rdParty/Boost/src/boost/type_traits/make_unsigned.hpp
@@ -37,11 +37,9 @@ struct make_unsigned_imp
{
BOOST_STATIC_ASSERT(
(::boost::type_traits::ice_or< ::boost::is_integral<T>::value, ::boost::is_enum<T>::value>::value));
-#if !BOOST_WORKAROUND(BOOST_MSVC, <=1300)
BOOST_STATIC_ASSERT(
(::boost::type_traits::ice_not< ::boost::is_same<
typename remove_cv<T>::type, bool>::value>::value));
-#endif
typedef typename remove_cv<T>::type t_no_cv;
typedef typename mpl::if_c<
@@ -72,7 +70,15 @@ struct make_unsigned_imp
is_same<t_no_cv, long>,
unsigned long,
#if defined(BOOST_HAS_LONG_LONG)
+#ifdef BOOST_HAS_INT128
+ typename mpl::if_c<
+ sizeof(t_no_cv) == sizeof(boost::ulong_long_type),
+ boost::ulong_long_type,
+ boost::uint128_type
+ >::type
+#else
boost::ulong_long_type
+#endif
#elif defined(BOOST_HAS_MS_INT64)
unsigned __int64
#else
@@ -96,7 +102,15 @@ struct make_unsigned_imp
sizeof(t_no_cv) == sizeof(unsigned long),
unsigned long,
#if defined(BOOST_HAS_LONG_LONG)
+#ifdef BOOST_HAS_INT128
+ typename mpl::if_c<
+ sizeof(t_no_cv) == sizeof(boost::ulong_long_type),
+ boost::ulong_long_type,
+ boost::uint128_type
+ >::type
+#else
boost::ulong_long_type
+#endif
#elif defined(BOOST_HAS_MS_INT64)
unsigned __int64
#else