From e5267abf6ea592deeb1c1e1ab815090882a40177 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Thu, 3 Dec 2009 12:14:15 +0000 Subject: [PATCH] Tentative Borland/Codegear patch. [SVN r58113] --- include/boost/integer.hpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/boost/integer.hpp b/include/boost/integer.hpp index d9215bc..275fe5d 100644 --- a/include/boost/integer.hpp +++ b/include/boost/integer.hpp @@ -126,6 +126,16 @@ namespace boost template< int Bits > // bits required struct uint_t : public detail::exact_unsigned_base_helper { +#if (defined(__BORLANDC__) || defined(__CODEGEAR__)) && defined(BOOST_NO_INTEGRAL_INT64_T) + // It's really not clear why this workaround should be needed... shrug I guess! JM + BOOST_STATIC_CONSTANT(int, s = + 6 + + (Bits <= ::std::numeric_limits::digits) + + (Bits <= ::std::numeric_limits::digits) + + (Bits <= ::std::numeric_limits::digits) + + (Bits <= ::std::numeric_limits::digits)); + typedef typename detail::int_least_helper< ::boost::uint_t::s>::least least; +#else typedef typename detail::int_least_helper < 5 + @@ -139,6 +149,7 @@ namespace boost (Bits <= ::std::numeric_limits::digits) + (Bits <= ::std::numeric_limits::digits) >::least least; +#endif typedef typename int_fast_t::type fast; // int_fast_t<> works correctly for unsigned too, in spite of the name. };