From 2cd51443f5080f9bdeafbb5a6b4174e6e1f79253 Mon Sep 17 00:00:00 2001 From: Thomas Witt Date: Thu, 17 May 2007 23:07:38 +0000 Subject: [PATCH] Hash warning patch see Trac #952 [SVN r37705] --- include/boost/functional/hash/hash.hpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/include/boost/functional/hash/hash.hpp b/include/boost/functional/hash/hash.hpp index 251f96d..56d36ab 100644 --- a/include/boost/functional/hash/hash.hpp +++ b/include/boost/functional/hash/hash.hpp @@ -1,5 +1,5 @@ -// Copyright Daniel James 2005-2006. Use, modification, and distribution are +// Copyright Daniel James 2005-2007. Use, modification, and distribution are // subject to the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -28,6 +28,11 @@ #include #endif +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4267) +#endif + namespace boost { #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) @@ -41,12 +46,13 @@ namespace boost std::size_t hash_value(long); std::size_t hash_value(unsigned long); -#if defined(BOOST_MSVC) && defined(_WIN64) +#if BOOST_HAS_LONG_LONG && defined(_M_X64) && defined(_WIN64) // On 64-bit windows std::size_t is a typedef for unsigned long long, which // isn't due to be supported until Boost 1.35. So add support here. // (Technically, Boost.Hash isn't actually documented as supporting // std::size_t. But it would be pretty silly not to). - std::size_t hash_value(std::size_t); + std::size_t hash_value(long long); + std::size_t hash_value(unsigned long long); #endif #if !BOOST_WORKAROUND(__DMC__, <= 0x848) @@ -116,7 +122,7 @@ namespace boost return static_cast(v); } -#if defined(_M_X64) && defined(_WIN64) +#if BOOST_HAS_LONG_LONG && defined(_M_X64) && defined(_WIN64) inline std::size_t hash_value(long long v) { return v; @@ -588,5 +594,9 @@ namespace boost #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION } +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif + #endif