From 1797528e351f442e0c1a9a55d4a6ef0d46934be9 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Sun, 29 Nov 2009 13:59:18 +0000 Subject: [PATCH] Change long long to boost::long_long_type etc. [SVN r58029] --- include/boost/integer.hpp | 16 +++++---- test/Jamfile.v2 | 4 +-- test/integer_test.cpp | 68 ++++++++++++++++++++++----------------- 3 files changed, 51 insertions(+), 37 deletions(-) diff --git a/include/boost/integer.hpp b/include/boost/integer.hpp index 7125ca6..e2197c1 100644 --- a/include/boost/integer.hpp +++ b/include/boost/integer.hpp @@ -41,7 +41,11 @@ namespace boost // fast integers from least integers // int_fast_t<> works correctly for unsigned too, in spite of the name. template< typename LeastInt > - struct int_fast_t { typedef LeastInt fast; }; // imps may specialize + struct int_fast_t + { + typedef LeastInt fast; + typedef fast type; + }; // imps may specialize namespace detail{ @@ -115,7 +119,7 @@ namespace boost (Bits-1 <= ::std::numeric_limits::digits) + (Bits-1 <= ::std::numeric_limits::digits) >::least least; - typedef typename int_fast_t::fast fast; + typedef typename int_fast_t::type fast; }; // unsigned @@ -135,7 +139,7 @@ namespace boost (Bits <= ::std::numeric_limits::digits) + (Bits <= ::std::numeric_limits::digits) >::least least; - typedef typename int_fast_t::fast fast; + typedef typename int_fast_t::type fast; // int_fast_t<> works correctly for unsigned too, in spite of the name. }; @@ -161,7 +165,7 @@ namespace boost (MaxValue <= ::boost::integer_traits::const_max) + (MaxValue <= ::boost::integer_traits::const_max) >::least least; - typedef typename int_fast_t::fast fast; + typedef typename int_fast_t::type fast; }; #if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) @@ -183,7 +187,7 @@ namespace boost (MinValue >= ::boost::integer_traits::const_min) + (MinValue >= ::boost::integer_traits::const_min) >::least least; - typedef typename int_fast_t::fast fast; + typedef typename int_fast_t::type fast; }; // unsigned @@ -207,7 +211,7 @@ namespace boost (MaxValue <= ::boost::integer_traits::const_max) + (MaxValue <= ::boost::integer_traits::const_max) >::least least; - typedef typename int_fast_t::fast fast; + typedef typename int_fast_t::type fast; }; diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 0732774..75f52b8 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -7,9 +7,9 @@ import testing ; project : requirements all gcc:-Wextra ; test-suite integer - : [ run cstdint_test.cpp : : : gcc:-Wno-long-long gcc:-Wno-type-limits ] + : [ run cstdint_test.cpp : : : gcc:-Wno-long-long darwin:-Wno-long-long ] [ run integer_traits_test.cpp ] - [ run integer_test.cpp : : : gcc:-Wno-long-long ] + [ run integer_test.cpp : : : gcc:-Wno-long-long darwin:-Wno-long-long ] [ run integer_mask_test.cpp ] [ run static_log2_test.cpp ] [ run static_min_max_test.cpp ] diff --git a/test/integer_test.cpp b/test/integer_test.cpp index e7dbbe4..9709994 100644 --- a/test/integer_test.cpp +++ b/test/integer_test.cpp @@ -50,8 +50,8 @@ const char* get_name_of_type(unsigned int){ return "unsigned int"; } const char* get_name_of_type(long){ return "long"; } const char* get_name_of_type(unsigned long){ return "unsigned long"; } #ifdef BOOST_HAS_LONG_LONG -const char* get_name_of_type(long long){ return "long long"; } -const char* get_name_of_type(unsigned long long){ return "unsigned long long"; } +const char* get_name_of_type(boost::long_long_type){ return "boost::long_long_type"; } +const char* get_name_of_type(boost::ulong_long_type){ return "boost::ulong_long_type"; } #endif template @@ -89,7 +89,7 @@ void do_test_bits() || (sizeof(unsigned int) * CHAR_BIT == Bits) || (sizeof(unsigned long) * CHAR_BIT == Bits) #ifdef BOOST_HAS_LONG_LONG - || (sizeof(unsigned long long) * CHAR_BIT == Bits) + || (sizeof(boost::ulong_long_type) * CHAR_BIT == Bits) #endif >()); // @@ -165,8 +165,8 @@ void do_test_bits<-1>() // Nothing to do here!! } -template -void test_min_max_type(Expected val) +template +void test_min_max_type(Value val) { typedef typename Traits::least least_type; typedef typename Traits::fast fast_type; @@ -174,6 +174,16 @@ void test_min_max_type(Expected val) BOOST_TEST(sizeof(fast_type) >= sizeof(least_type)); BOOST_TEST((std::numeric_limits::min)() <= val); BOOST_TEST((std::numeric_limits::max)() >= val); + + if(boost::detail::test_errors() != last_error_count) + { + last_error_count = boost::detail::test_errors(); + std::cout << "Traits type is: " << typeid(Traits).name() << std::endl; + std::cout << "Least type is: " << get_name_of_type(least_type(0)) << std::endl; + std::cout << "Fast type is: " << get_name_of_type(fast_type(0)) << std::endl; + std::cout << "Expected type is: " << get_name_of_type(Expected(0)) << std::endl; + std::cout << "Required value is: " << val << std::endl; + } } // Test program @@ -216,36 +226,36 @@ int main(int, char*[]) test_min_max_type, unsigned long>(ULONG_MAX); #endif #if defined(BOOST_HAS_LONG_LONG) && (defined(ULLONG_MAX) && (ULLONG_MAX != ULONG_MAX)) - test_min_max_type, long long>(LONG_MAX+1LL); - test_min_max_type, long long>(LONG_MIN-1LL); - test_min_max_type, unsigned long long>(ULONG_MAX+1uLL); - test_min_max_type, long long>(LLONG_MAX); - test_min_max_type, long long>(LLONG_MIN); - test_min_max_type, unsigned long long>(ULLONG_MAX); + test_min_max_type, boost::long_long_type>(LONG_MAX+1LL); + test_min_max_type, boost::long_long_type>(LONG_MIN-1LL); + test_min_max_type, boost::ulong_long_type>(ULONG_MAX+1uLL); + 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 #if defined(BOOST_HAS_LONG_LONG) && (defined(ULONG_LONG_MAX) && (ULONG_LONG_MAX != ULONG_MAX)) - test_min_max_type, long long>(LONG_MAX+1LL); - test_min_max_type, long long>(LONG_MIN-1LL); - test_min_max_type, unsigned long long>(ULONG_MAX+1uLL); - test_min_max_type, long long>(LONG_LONG_MAX); - test_min_max_type, long long>(LONG_LONG_MIN); - test_min_max_type, unsigned long long>(ULONG_LONG_MAX); + test_min_max_type, boost::long_long_type>(LONG_MAX+1LL); + test_min_max_type, boost::long_long_type>(LONG_MIN-1LL); + test_min_max_type, boost::ulong_long_type>(ULONG_MAX+1uLL); + test_min_max_type, boost::long_long_type>(LONG_LONG_MAX); + test_min_max_type, boost::long_long_type>(LONG_LONG_MIN); + test_min_max_type, boost::ulong_long_type>(ULONG_LONG_MAX); #endif #if defined(BOOST_HAS_LONG_LONG) && (defined(ULONGLONG_MAX) && (ULONGLONG_MAX != ULONG_MAX)) - test_min_max_type, long long>(LONG_MAX+1LL); - test_min_max_type, long long>(LONG_MIN-1LL); - test_min_max_type, unsigned long long>(ULONG_MAX+1uLL); - test_min_max_type, long long>(LONGLONG_MAX); - test_min_max_type, long long>(LONGLONG_MAX); - test_min_max_type, unsigned long long>(ULONGLONG_MAX); + test_min_max_type, boost::long_long_type>(LONG_MAX+1LL); + test_min_max_type, boost::long_long_type>(LONG_MIN-1LL); + test_min_max_type, boost::ulong_long_type>(ULONG_MAX+1uLL); + test_min_max_type, boost::long_long_type>(LONGLONG_MAX); + test_min_max_type, boost::long_long_type>(LONGLONG_MAX); + test_min_max_type, boost::ulong_long_type>(ULONGLONG_MAX); #endif #if defined(BOOST_HAS_LONG_LONG) && (defined(_ULLONG_MAX) && defined(_LLONG_MIN) && (_ULLONG_MAX != ULONG_MAX)) - test_min_max_type, long long>(LONG_MAX+1LL); - test_min_max_type, long long>(LONG_MIN-1LL); - test_min_max_type, unsigned long long>(ULONG_MAX+1uLL); - test_min_max_type, long long>(_LLONG_MAX); - test_min_max_type, long long>(_LLONG_MIN); - test_min_max_type, unsigned long long>(_ULLONG_MAX); + test_min_max_type, boost::long_long_type>(LONG_MAX+1LL); + test_min_max_type, boost::long_long_type>(LONG_MIN-1LL); + test_min_max_type, boost::ulong_long_type>(ULONG_MAX+1uLL); + 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 return boost::report_errors(); }