diff --git a/include/boost/integer.hpp b/include/boost/integer.hpp index e2197c1..f82e1b3 100644 --- a/include/boost/integer.hpp +++ b/include/boost/integer.hpp @@ -155,7 +155,7 @@ namespace boost { typedef typename detail::int_least_helper < -#ifdef BOOST_HAS_LONG_LONG +#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) (MaxValue <= ::boost::integer_traits::const_max) + #else 1 + @@ -177,7 +177,7 @@ namespace boost { typedef typename detail::int_least_helper < -#ifdef BOOST_HAS_LONG_LONG +#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) (MinValue >= ::boost::integer_traits::const_min) + #else 1 + @@ -201,7 +201,7 @@ namespace boost typedef typename detail::int_least_helper < 5 + -#ifdef BOOST_HAS_LONG_LONG +#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) (MaxValue <= ::boost::integer_traits::const_max) + #else 1 + diff --git a/test/integer_test.cpp b/test/integer_test.cpp index 9709994..4e4f8c7 100644 --- a/test/integer_test.cpp +++ b/test/integer_test.cpp @@ -225,6 +225,7 @@ int main(int, char*[]) test_min_max_type, long>(LONG_MIN); test_min_max_type, unsigned long>(ULONG_MAX); #endif +#ifndef BOOST_NO_INTEGRAL_INT64_T #if defined(BOOST_HAS_LONG_LONG) && (defined(ULLONG_MAX) && (ULLONG_MAX != ULONG_MAX)) test_min_max_type, boost::long_long_type>(LONG_MAX+1LL); test_min_max_type, boost::long_long_type>(LONG_MIN-1LL); @@ -256,6 +257,7 @@ int main(int, char*[]) test_min_max_type, boost::long_long_type>(_LLONG_MAX); test_min_max_type, boost::long_long_type>(_LLONG_MIN); test_min_max_type, boost::ulong_long_type>(_ULLONG_MAX); -#endif +#endif // BOOST_HAS_LONG_LONG +#endif // BOOST_NO_INTEGRAL_INT64_T return boost::report_errors(); } diff --git a/test/integer_traits_include_test.cpp b/test/integer_traits_include_test.cpp index ddbe070..a71fb33 100644 --- a/test/integer_traits_include_test.cpp +++ b/test/integer_traits_include_test.cpp @@ -30,7 +30,7 @@ int main() check(); check(); check(); -#ifdef BOOST_HAS_LONG_LONG +#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) check(); check(); #endif diff --git a/test/integer_traits_test.cpp b/test/integer_traits_test.cpp index 9c5fcd0..b6e0d49 100644 --- a/test/integer_traits_test.cpp +++ b/test/integer_traits_test.cpp @@ -85,7 +85,7 @@ int main(int, char*[]) runtest("long", long()); typedef unsigned long unsigned_long; runtest("unsigned long", unsigned_long()); -#if !defined(BOOST_NO_INT64_T) && (!defined(BOOST_MSVC) || BOOST_MSVC > 1300) && !defined(__BORLANDC__) && !defined(__BEOS__) +#ifndef BOOST_NO_INTEGRAL_INT64_T // // MS/Borland compilers can't support 64-bit member constants // BeOS doesn't have specialisations for long long in SGI's header.