diff --git a/include/boost/container_hash/hash.hpp b/include/boost/container_hash/hash.hpp index eeaca31..7c6223d 100644 --- a/include/boost/container_hash/hash.hpp +++ b/include/boost/container_hash/hash.hpp @@ -204,8 +204,8 @@ namespace boost std::size_t seed = 0; - boost::hash_combine( seed, w[ 0 ] ); - boost::hash_combine( seed, w[ 1 ] ); + seed ^= static_cast( w[0] ) + ( seed << 6 ) + ( seed >> 2 ); + seed ^= static_cast( w[1] ) + ( seed << 6 ) + ( seed >> 2 ); return seed; } @@ -221,8 +221,8 @@ namespace boost std::size_t seed = 0; - boost::hash_combine( seed, w[ 0 ] ); - boost::hash_combine( seed, w[ 1 ] ); + seed ^= static_cast( w[0] ) + ( seed << 6 ) + ( seed >> 2 ); + seed ^= static_cast( w[1] ) + ( seed << 6 ) + ( seed >> 2 ); return seed; } @@ -238,8 +238,8 @@ namespace boost std::size_t seed = 0; - boost::hash_combine( seed, w[ 0 ] ); - boost::hash_combine( seed, w[ 1 ] ); + seed ^= static_cast( w[0] ) + ( seed << 6 ) + ( seed >> 2 ); + seed ^= static_cast( w[1] ) + ( seed << 6 ) + ( seed >> 2 ); return seed; } diff --git a/test/hash_complex_test.cpp b/test/hash_complex_test.cpp index 2435ab4..73f43de 100644 --- a/test/hash_complex_test.cpp +++ b/test/hash_complex_test.cpp @@ -123,7 +123,7 @@ int main() complex_grid_test( 16 ); complex_grid_test( 7 ); complex_grid_test( 16 ); - complex_grid_test( 16 ); + complex_grid_test( 15 ); return boost::report_errors(); }