Make code respect BOOST_NO_INTEGRAL_INT64_T.

[SVN r58031]
This commit is contained in:
John Maddock
2009-11-29 16:02:45 +00:00
parent 1797528e35
commit 3af7c55ad9
4 changed files with 8 additions and 6 deletions

View File

@ -155,7 +155,7 @@ namespace boost
{ {
typedef typename detail::int_least_helper 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<boost::long_long_type>::const_max) + (MaxValue <= ::boost::integer_traits<boost::long_long_type>::const_max) +
#else #else
1 + 1 +
@ -177,7 +177,7 @@ namespace boost
{ {
typedef typename detail::int_least_helper 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<boost::long_long_type>::const_min) + (MinValue >= ::boost::integer_traits<boost::long_long_type>::const_min) +
#else #else
1 + 1 +
@ -201,7 +201,7 @@ namespace boost
typedef typename detail::int_least_helper typedef typename detail::int_least_helper
< <
5 + 5 +
#ifdef BOOST_HAS_LONG_LONG #if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
(MaxValue <= ::boost::integer_traits<boost::ulong_long_type>::const_max) + (MaxValue <= ::boost::integer_traits<boost::ulong_long_type>::const_max) +
#else #else
1 + 1 +

View File

@ -225,6 +225,7 @@ int main(int, char*[])
test_min_max_type<boost::int_min_value_t<LONG_MIN>, long>(LONG_MIN); test_min_max_type<boost::int_min_value_t<LONG_MIN>, long>(LONG_MIN);
test_min_max_type<boost::uint_value_t<ULONG_MAX>, unsigned long>(ULONG_MAX); test_min_max_type<boost::uint_value_t<ULONG_MAX>, unsigned long>(ULONG_MAX);
#endif #endif
#ifndef BOOST_NO_INTEGRAL_INT64_T
#if defined(BOOST_HAS_LONG_LONG) && (defined(ULLONG_MAX) && (ULLONG_MAX != ULONG_MAX)) #if defined(BOOST_HAS_LONG_LONG) && (defined(ULLONG_MAX) && (ULLONG_MAX != ULONG_MAX))
test_min_max_type<boost::int_max_value_t<LONG_MAX+1LL>, boost::long_long_type>(LONG_MAX+1LL); test_min_max_type<boost::int_max_value_t<LONG_MAX+1LL>, boost::long_long_type>(LONG_MAX+1LL);
test_min_max_type<boost::int_min_value_t<LONG_MIN-1LL>, boost::long_long_type>(LONG_MIN-1LL); test_min_max_type<boost::int_min_value_t<LONG_MIN-1LL>, boost::long_long_type>(LONG_MIN-1LL);
@ -256,6 +257,7 @@ int main(int, char*[])
test_min_max_type<boost::int_max_value_t<_LLONG_MAX>, boost::long_long_type>(_LLONG_MAX); test_min_max_type<boost::int_max_value_t<_LLONG_MAX>, boost::long_long_type>(_LLONG_MAX);
test_min_max_type<boost::int_min_value_t<_LLONG_MIN>, boost::long_long_type>(_LLONG_MIN); test_min_max_type<boost::int_min_value_t<_LLONG_MIN>, boost::long_long_type>(_LLONG_MIN);
test_min_max_type<boost::uint_value_t<_ULLONG_MAX>, boost::ulong_long_type>(_ULLONG_MAX); test_min_max_type<boost::uint_value_t<_ULLONG_MAX>, boost::ulong_long_type>(_ULLONG_MAX);
#endif #endif // BOOST_HAS_LONG_LONG
#endif // BOOST_NO_INTEGRAL_INT64_T
return boost::report_errors(); return boost::report_errors();
} }

View File

@ -30,7 +30,7 @@ int main()
check<unsigned int>(); check<unsigned int>();
check<signed long>(); check<signed long>();
check<unsigned long>(); check<unsigned long>();
#ifdef BOOST_HAS_LONG_LONG #if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
check<boost::long_long_type>(); check<boost::long_long_type>();
check<boost::ulong_long_type>(); check<boost::ulong_long_type>();
#endif #endif

View File

@ -85,7 +85,7 @@ int main(int, char*[])
runtest("long", long()); runtest("long", long());
typedef unsigned long unsigned_long; typedef unsigned long unsigned_long;
runtest("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 // MS/Borland compilers can't support 64-bit member constants
// BeOS doesn't have specialisations for long long in SGI's <limits> header. // BeOS doesn't have specialisations for long long in SGI's <limits> header.