Merge release notes + float hash fix. Ref #8822.

[SVN r86210]
This commit is contained in:
Daniel James
2013-10-08 21:26:30 +00:00
parent e75e6d7eda
commit 9eb6f1fda4
2 changed files with 17 additions and 9 deletions

View File

@ -3,6 +3,8 @@
/ Distributed under the Boost Software License, Version 1.0. (See accompanying / Distributed under 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) ] / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ]
[template ticket[number]'''<ulink url="https://svn.boost.org/trac/boost/ticket/'''[number]'''">'''#[number]'''</ulink>''']
[section:changes Change Log] [section:changes Change Log]
[h2 Boost 1.33.0] [h2 Boost 1.33.0]
@ -160,4 +162,11 @@
* [@https://svn.boost.org/trac/boost/ticket/7957 Ticket 7957]: * [@https://svn.boost.org/trac/boost/ticket/7957 Ticket 7957]:
Fixed a typo. Fixed a typo.
[h2 Boost 1.55.0]
* Simplify a SFINAE check so that it will hopefully work on Sun 5.9
([ticket 8822]).
* Suppress Visual C++ infinite loop warning ([ticket 8568]).
[endsect] [endsect]

View File

@ -103,7 +103,8 @@ namespace boost
template <typename Float> template <typename Float>
inline std::size_t float_hash_impl(Float v, inline std::size_t float_hash_impl(Float v,
BOOST_DEDUCED_TYPENAME boost::enable_if_c< BOOST_DEDUCED_TYPENAME boost::enable_if_c<
enable_binary_hash<Float, 24, 128>::value, int>::type) enable_binary_hash<Float, 24, 128>::value,
std::size_t>::type)
{ {
return hash_binary((char*) &v, 4); return hash_binary((char*) &v, 4);
} }
@ -112,7 +113,8 @@ namespace boost
template <typename Float> template <typename Float>
inline std::size_t float_hash_impl(Float v, inline std::size_t float_hash_impl(Float v,
BOOST_DEDUCED_TYPENAME boost::enable_if_c< BOOST_DEDUCED_TYPENAME boost::enable_if_c<
enable_binary_hash<Float, 53, 1024>::value, int>::type) enable_binary_hash<Float, 53, 1024>::value,
std::size_t>::type)
{ {
return hash_binary((char*) &v, 8); return hash_binary((char*) &v, 8);
} }
@ -120,7 +122,8 @@ namespace boost
template <typename Float> template <typename Float>
inline std::size_t float_hash_impl(Float v, inline std::size_t float_hash_impl(Float v,
BOOST_DEDUCED_TYPENAME boost::enable_if_c< BOOST_DEDUCED_TYPENAME boost::enable_if_c<
enable_binary_hash<Float, 64, 16384>::value, int>::type) enable_binary_hash<Float, 64, 16384>::value,
std::size_t>::type)
{ {
return hash_binary((char*) &v, 10); return hash_binary((char*) &v, 10);
} }
@ -128,12 +131,8 @@ namespace boost
template <typename Float> template <typename Float>
inline std::size_t float_hash_impl(Float v, inline std::size_t float_hash_impl(Float v,
BOOST_DEDUCED_TYPENAME boost::enable_if_c< BOOST_DEDUCED_TYPENAME boost::enable_if_c<
std::numeric_limits<Float>::is_iec559 && enable_binary_hash<Float, 113, 16384>::value,
std::numeric_limits<Float>::digits == 113 && std::size_t>::type)
std::numeric_limits<Float>::radix == 2 &&
std::numeric_limits<Float>::max_exponent == 16384,
int>::type
)
{ {
return hash_binary((char*) &v, 16); return hash_binary((char*) &v, 16);
} }