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. };