forked from boostorg/container_hash
@@ -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 <boost/type_traits/is_const.hpp>
|
||||
#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<std::size_t>(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
|
||||
|
||||
|
Reference in New Issue
Block a user