The Boost.ContainerHash library, part of Boost C++ Libraries,
provides boost::hash, an enhanced implementation of the
hash function object specified
by C++11 as std::hash, and several support facilities (hash_combine,
hash_range, hash_unordered_range).
boost::hash supports most standard types and some user-defined types out of
the box, and is extensible; it's possible for a user-defined type X to make
iself hashable via boost::hash<X> by defining an appropriate overload of the
function hash_value.
See the documentation of the library for more information.
Distributed under the Boost Software License, Version 1.0.