![]() |
Home | Libraries | People | FAQ | More |
<boost/functional/hash/*.hpp> headers. Now a single header, <boost/functional/hash.hpp>
is used.
BOOST_HASH_NO_EXTENSIONS
macro, which disables the extensions to TR1.
long long,
std::complex.
Improved algorithm for hashing floating point numbers:
long double.
fpclass
which doesn't support long double.
errno.
A few bug and warning fixes:
std::numeric_limits.
long
long and unsigned
long long.
long
double and float
as the C++ overloads aren't always availables.
boost/functional/detail,
since they are part of functional/hash, not functional. boost/functional/detail/container_fwd.hpp
has been moved to boost/detail/container_fwd.hpp
as it's used outside of this library, the others have been moved to boost/functional/hash/detail.
BOOST_DETAIL_NO_CONTAINER_FWD
macro.
BOOST_HAS_* macros.
hash_value
by defining BOOST_HASH_NO_IMPLICIT_CASTS.
When using boost::hash for a type that does not have hash_value declared but does have an
implicit conversion to a type that does, it would use that implicit conversion
to hash it. Which can sometimes go very wrong, e.g. using a conversion
to bool and only hashing to 2 possible values. Since fixing this is a breaking
change and was only approached quite late in the release cycle with little
discussion it's opt-in for now. This, or something like it, will become
the default in a future version.