diff --git a/hash/test/config.hpp b/hash/test/config.hpp index 893f456..216d9c4 100644 --- a/hash/test/config.hpp +++ b/hash/test/config.hpp @@ -16,5 +16,6 @@ #if defined(_WIN32_WCE) // The standard windows mobile headers trigger this warning so I disable it // before doing anything else. -#pragma warning(disable:4201) // nonstandard extension used : nameless struct/union +#pragma warning(disable:4201) // nonstandard extension used : + // nameless struct/union #endif diff --git a/hash/test/container_fwd_test.cpp b/hash/test/container_fwd_test.cpp index a63c086..ec8cc54 100644 --- a/hash/test/container_fwd_test.cpp +++ b/hash/test/container_fwd_test.cpp @@ -7,14 +7,17 @@ #include -#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) +#if BOOST_WORKAROUND(__GNUC__, < 3) && \ + !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) template -static void test(std::basic_string, Allocator> const&) +static void test( + std::basic_string, Allocator> const&) { } #else template -static void test(std::basic_string, Allocator> const&) +static void test( + std::basic_string, Allocator> const&) { } #endif diff --git a/hash/test/hash_complex_test.cpp b/hash/test/hash_complex_test.cpp index 3d7c200..a2a2dc2 100644 --- a/hash/test/hash_complex_test.cpp +++ b/hash/test/hash_complex_test.cpp @@ -20,13 +20,18 @@ int main() {} #include #if defined(BOOST_MSVC) -#pragma warning(disable:4244) // conversion from 'unsigned long' to 'unsigned short', possible loss of data -#pragma warning(disable:4245) // conversion from 'int' to 'const unsigned short', signed/unsigned mismatch -#pragma warning(disable:4305) // truncation from 'double' to 'const std::complex::_Ty' -#pragma warning(disable:4309) // truncation of constant value -#pragma warning(disable:4512) // assignment operator could not be generated +#pragma warning(disable:4244) // conversion from 'unsigned long' to + // 'unsigned short', possible loss of data +#pragma warning(disable:4245) // conversion from 'int' to + // 'const unsigned short', + // signed/unsigned mismatch +#pragma warning(disable:4305) // truncation from 'double' to + // 'const std::complex::_Ty' +#pragma warning(disable:4309) // truncation of constant value +#pragma warning(disable:4512) // assignment operator could not be generated #if BOOST_MSVC < 1400 -#pragma warning(disable:4267) // conversion from 'size_t' to 'unsigned int', possible loss of data +#pragma warning(disable:4267) // conversion from 'size_t' to 'unsigned int', + // possible loss of data #endif #endif diff --git a/hash/test/hash_custom_test.cpp b/hash/test/hash_custom_test.cpp index fb37d91..966df09 100644 --- a/hash/test/hash_custom_test.cpp +++ b/hash/test/hash_custom_test.cpp @@ -84,8 +84,8 @@ void custom_tests() HASH_NAMESPACE::hash_combine(seed2, 250u); HASH_NAMESPACE::hash_combine(seed2, 350u); - BOOST_TEST(seed == - HASH_NAMESPACE::hash_range(custom_vector.begin(), custom_vector.end())); + BOOST_TEST(seed == HASH_NAMESPACE::hash_range( + custom_vector.begin(), custom_vector.end())); BOOST_TEST(seed == seed2); } diff --git a/hash/test/hash_float_test.hpp b/hash/test/hash_float_test.hpp index ab3cbf2..2818bb2 100644 --- a/hash/test/hash_float_test.hpp +++ b/hash/test/hash_float_test.hpp @@ -22,10 +22,11 @@ #if defined(BOOST_MSVC) #pragma warning(push) -#pragma warning(disable:4127) // conditional expression is constant -#pragma warning(disable:4723) // conditional expression is constant +#pragma warning(disable:4127) // conditional expression is constant +#pragma warning(disable:4723) // conditional expression is constant #if BOOST_MSVC < 1400 -#pragma warning(disable:4267) // conversion from 'size_t' to 'unsigned int', possible loss of data +#pragma warning(disable:4267) // conversion from 'size_t' to 'unsigned int', + // possible loss of data #endif #endif @@ -36,23 +37,33 @@ char const* float_type(long double*) { return "long double"; } template void float_tests(char const* name, T* = 0) { - std::cerr<<"\n" - <<"Testing " BOOST_STRINGIZE(HASH_NAMESPACE) "::hash<"<\n" - <<"\n" - <<"boost::hash_detail::limits::digits = " - <::digits<<"\n" - <<"boost::hash_detail::limits::digits = " - <::digits<<"\n" - <<"boost::hash_detail::limits::digits = " - <::digits<<"\n" - <<"\n" - <<"boost::hash_detail::call_ldexp::float_type = " - <::float_type*)0)<<"\n" - <<"boost::hash_detail::call_frexp::float_type = " - <::float_type*)0)<<"\n" - <<"boost::hash_detail::select_hash_type::type = " - <::type*)0)<<"\n" - <<"\n" + std::cerr + << "\n" + << "Testing " BOOST_STRINGIZE(HASH_NAMESPACE) "::hash<" + << name + << ">\n" + << "\n" + << "boost::hash_detail::limits::digits = " + << boost::hash_detail::limits::digits<< "\n" + << "boost::hash_detail::limits::digits = " + << boost::hash_detail::limits::digits<< "\n" + << "boost::hash_detail::limits::digits = " + << boost::hash_detail::limits::digits + << "\n" + << "\n" + << "boost::hash_detail::call_ldexp::float_type = " + << float_type(static_cast::float_type*>(0)) + << "\n" + << "boost::hash_detail::call_frexp::float_type = " + << float_type(static_cast::float_type*>(0)) + << "\n" + << "boost::hash_detail::select_hash_type::type = " + << float_type(static_cast::type*>(0)) + << "\n" + << "\n" ; HASH_NAMESPACE::hash x1; @@ -72,7 +83,9 @@ void float_tests(char const* name, T* = 0) // Doing anything with infinity causes borland to crash. #if defined(__BORLANDC__) - std::cerr<<"Not running infinity checks on Borland, as it causes it to crash.\n"; + std::cerr + << "Not running infinity checks on Borland, as it causes it to crash." + "\n"; #else if(boost::hash_detail::limits::has_infinity) { T infinity = -log(zero); @@ -111,19 +124,40 @@ void float_tests(char const* name, T* = 0) // This should really be 'has_denorm == denorm_present' but some // compilers don't have 'denorm_present'. See also a later use. if(boost::hash_detail::limits::has_denorm) { - if(x1(boost::hash_detail::limits::denorm_min()) == x1(infinity)) { - std::cerr<<"x1(denorm_min) == x1(infinity) == "<::denorm_min()) == x1(infinity)) + { + std::cerr + << "x1(denorm_min) == x1(infinity) == " + << x1(infinity) + << "\n"; } - if(x1(boost::hash_detail::limits::denorm_min()) == x1(minus_infinity)) { - std::cerr<<"x1(denorm_min) == x1(-infinity) == "<::denorm_min()) == + x1(minus_infinity)) + { + std::cerr + << "x1(denorm_min) == x1(-infinity) == " + << x1(minus_infinity) + << "\n"; } } + if(boost::hash_detail::limits::has_quiet_NaN) { - if(x1(boost::hash_detail::limits::quiet_NaN()) == x1(infinity)) { - std::cerr<<"x1(quiet_NaN) == x1(infinity) == "<::quiet_NaN()) == x1(infinity)) + { + std::cerr + << "x1(quiet_NaN) == x1(infinity) == " + << x1(infinity) + << "\n"; } - if(x1(boost::hash_detail::limits::quiet_NaN()) == x1(minus_infinity)) { - std::cerr<<"x1(quiet_NaN) == x1(-infinity) == "<::quiet_NaN()) == + x1(minus_infinity)) + { + std::cerr + << "x1(quiet_NaN) == x1(-infinity) == " + << x1(minus_infinity) + << "\n"; } } } @@ -146,10 +180,12 @@ void float_tests(char const* name, T* = 0) BOOST_TEST(x1(max) == HASH_NAMESPACE::hash_value(max)); BOOST_TEST(x1(half_max) == HASH_NAMESPACE::hash_value(half_max)); BOOST_TEST(x1(quarter_max) == HASH_NAMESPACE::hash_value(quarter_max)); - BOOST_TEST(x1(three_quarter_max) == HASH_NAMESPACE::hash_value(three_quarter_max)); + BOOST_TEST(x1(three_quarter_max) == + HASH_NAMESPACE::hash_value(three_quarter_max)); #endif - // The '!=' tests could legitimately fail, but with my hash it indicates a bug. + // The '!=' tests could legitimately fail, but with my hash it indicates a + // bug. BOOST_TEST(x1(max) == x1(max)); BOOST_TEST(x1(max) != x1(quarter_max)); BOOST_TEST(x1(max) != x1(half_max)); @@ -179,7 +215,8 @@ void float_tests(char const* name, T* = 0) #if defined(TEST_EXTENSIONS) BOOST_TEST(x1(boost::hash_detail::limits::epsilon()) == - HASH_NAMESPACE::hash_value(boost::hash_detail::limits::epsilon())); + HASH_NAMESPACE::hash_value( + boost::hash_detail::limits::epsilon())); #endif BOOST_TEST(boost::hash_detail::limits::epsilon() != (T) 0); @@ -216,14 +253,19 @@ void float_tests(char const* name, T* = 0) // specialization of boost::hash_detail::limits::denorm_min() for long // doubles which causes this test to fail. if(x1(boost::hash_detail::limits::denorm_min()) != - HASH_NAMESPACE::hash_value(boost::hash_detail::limits::denorm_min())) + HASH_NAMESPACE::hash_value( + boost::hash_detail::limits::denorm_min())) { - std::cerr<<"x1(boost::hash_detail::limits::denorm_min()) = " - << x1(boost::hash_detail::limits::denorm_min()) - << "\nhash_value(boost::hash_detail::limits::denorm_min()) = " - << HASH_NAMESPACE::hash_value( + std::cerr + << "x1(boost::hash_detail::limits::denorm_min()) = " + << x1(boost::hash_detail::limits::denorm_min()) + << "\nhash_value(boost::hash_detail::limits::denorm_min())" + " = " + << HASH_NAMESPACE::hash_value( boost::hash_detail::limits::denorm_min()) - << "\nx1(0) = "<::quiet_NaN()) == - HASH_NAMESPACE::hash_value(boost::hash_detail::limits::quiet_NaN())); + HASH_NAMESPACE::hash_value( + boost::hash_detail::limits::quiet_NaN())); } #endif } diff --git a/hash/test/hash_friend_test.cpp b/hash/test/hash_friend_test.cpp index 8a493e2..9d84570 100644 --- a/hash/test/hash_friend_test.cpp +++ b/hash/test/hash_friend_test.cpp @@ -87,8 +87,8 @@ void custom_tests() HASH_NAMESPACE::hash_combine(seed2, 250u); HASH_NAMESPACE::hash_combine(seed2, 350u); - BOOST_TEST(seed == - HASH_NAMESPACE::hash_range(custom_vector.begin(), custom_vector.end())); + BOOST_TEST(seed == HASH_NAMESPACE::hash_range( + custom_vector.begin(), custom_vector.end())); BOOST_TEST(seed == seed2); } diff --git a/hash/test/hash_fwd_test.hpp b/hash/test/hash_fwd_test.hpp index 2438abf..09ef3b3 100644 --- a/hash/test/hash_fwd_test.hpp +++ b/hash/test/hash_fwd_test.hpp @@ -60,7 +60,8 @@ namespace test { template std::size_t hash_value(test_type3 const& x) { - std::size_t seed = HASH_NAMESPACE::hash_range(x.values.begin(), x.values.end()); + std::size_t seed = + HASH_NAMESPACE::hash_range(x.values.begin(), x.values.end()); HASH_NAMESPACE::hash_range(seed, x.values.begin(), x.values.end()); return seed; } @@ -91,7 +92,8 @@ namespace boost template std::size_t hash_value(test::test_type3 const& x) { - std::size_t seed = HASH_NAMESPACE::hash_range(x.values.begin(), x.values.end()); + std::size_t seed = + HASH_NAMESPACE::hash_range(x.values.begin(), x.values.end()); HASH_NAMESPACE::hash_range(seed, x.values.begin(), x.values.end()); return seed; } diff --git a/hash/test/hash_fwd_test_1.cpp b/hash/test/hash_fwd_test_1.cpp index 6c7f8d3..1f27f65 100644 --- a/hash/test/hash_fwd_test_1.cpp +++ b/hash/test/hash_fwd_test_1.cpp @@ -68,10 +68,12 @@ void fwd_test3() test::test_type3 x(values1.begin(), values1.end()); test::test_type3 y(values2.begin(), values2.end()); - std::size_t seed1 = HASH_NAMESPACE::hash_range(values1.begin(), values1.end()); + std::size_t seed1 = + HASH_NAMESPACE::hash_range(values1.begin(), values1.end()); HASH_NAMESPACE::hash_range(seed1, values1.begin(), values1.end()); - std::size_t seed2 = HASH_NAMESPACE::hash_range(values2.begin(), values2.end()); + std::size_t seed2 = + HASH_NAMESPACE::hash_range(values2.begin(), values2.end()); HASH_NAMESPACE::hash_range(seed2, values2.begin(), values2.end()); HASH_NAMESPACE::hash > hasher_test_int; @@ -92,4 +94,3 @@ int main() #endif return boost::report_errors(); } - diff --git a/hash/test/hash_global_namespace_test.cpp b/hash/test/hash_global_namespace_test.cpp index ccb99e7..d1d504d 100644 --- a/hash/test/hash_global_namespace_test.cpp +++ b/hash/test/hash_global_namespace_test.cpp @@ -85,8 +85,8 @@ void custom_tests() HASH_NAMESPACE::hash_combine(seed2, 250u); HASH_NAMESPACE::hash_combine(seed2, 350u); - BOOST_TEST(seed == - HASH_NAMESPACE::hash_range(custom_vector.begin(), custom_vector.end())); + BOOST_TEST(seed == HASH_NAMESPACE::hash_range( + custom_vector.begin(), custom_vector.end())); BOOST_TEST(seed == seed2); } diff --git a/hash/test/hash_number_test.cpp b/hash/test/hash_number_test.cpp index 40febc7..b1a52b3 100644 --- a/hash/test/hash_number_test.cpp +++ b/hash/test/hash_number_test.cpp @@ -55,8 +55,11 @@ void numeric_test(T*) if (limits::is_integer) { - if(limits::is_signed || limits::digits <= boost::hash_detail::limits::digits) + if(limits::is_signed || + limits::digits <= boost::hash_detail::limits::digits) + { BOOST_TEST(HASH_NAMESPACE::hash_value(T(-5)) == (std::size_t)T(-5)); + } BOOST_TEST(HASH_NAMESPACE::hash_value(T(0)) == (std::size_t)T(0u)); BOOST_TEST(HASH_NAMESPACE::hash_value(T(10)) == (std::size_t)T(10u)); BOOST_TEST(HASH_NAMESPACE::hash_value(T(25)) == (std::size_t)T(25u)); diff --git a/hash/test/hash_range_test.cpp b/hash/test/hash_range_test.cpp index 7d71f45..8743e1e 100644 --- a/hash/test/hash_range_test.cpp +++ b/hash/test/hash_range_test.cpp @@ -70,10 +70,12 @@ void hash_range_tests() BOOST_TEST(HASH_NAMESPACE::hash_range(values3.begin(), values3.end()) == HASH_NAMESPACE::hash_range(x.begin(), x.end())); - std::size_t seed = HASH_NAMESPACE::hash_range(values3.begin(), values3.end()); + std::size_t seed = + HASH_NAMESPACE::hash_range(values3.begin(), values3.end()); HASH_NAMESPACE::hash_range(seed, values4.begin(), values4.end()); HASH_NAMESPACE::hash_range(seed, x.begin(), x.end()); - BOOST_TEST(seed == HASH_NAMESPACE::hash_range(values5.begin(), values5.end())); + BOOST_TEST(seed == + HASH_NAMESPACE::hash_range(values5.begin(), values5.end())); } int main() diff --git a/include/boost/functional/hash/hash.hpp b/include/boost/functional/hash/hash.hpp index 697cb41..1f33b9e 100644 --- a/include/boost/functional/hash/hash.hpp +++ b/include/boost/functional/hash/hash.hpp @@ -20,7 +20,8 @@ #include #endif -#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) +#if BOOST_WORKAROUND(__GNUC__, < 3) \ + && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) #define BOOST_HASH_CHAR_TRAITS string_char_traits #else #define BOOST_HASH_CHAR_TRAITS char_traits @@ -67,7 +68,8 @@ namespace boost std::size_t hash_value(long double v); template - std::size_t hash_value(std::basic_string, A> const&); + std::size_t hash_value( + std::basic_string, A> const&); // Implementation @@ -200,9 +202,10 @@ namespace boost #if defined(BOOST_MSVC) #pragma warning(push) #if BOOST_MSVC <= 1400 -#pragma warning(disable:4267) // 'argument' : conversion from 'size_t' to 'unsigned int', - // possible loss of data - // A misguided attempt to detect 64-bit incompatability. +#pragma warning(disable:4267) // 'argument' : conversion from 'size_t' to + // 'unsigned int', possible loss of data + // A misguided attempt to detect 64-bit + // incompatability. #endif #endif @@ -285,7 +288,8 @@ namespace boost #endif template - inline std::size_t hash_value(std::basic_string, A> const& v) + inline std::size_t hash_value( + std::basic_string, A> const& v) { return hash_range(v.begin(), v.end()); } @@ -310,8 +314,8 @@ namespace boost // // Define the specializations required by the standard. The general purpose - // boost::hash is defined later in extensions.hpp if BOOST_HASH_NO_EXTENSIONS - // is not defined. + // boost::hash is defined later in extensions.hpp if + // BOOST_HASH_NO_EXTENSIONS is not defined. // BOOST_HASH_SPECIALIZE - define a specialization for a type which is // passed by copy.