Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.

Chapter 10. Boost.ContainerHash

Daniel James

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Table of Contents

Extending boost::hash for a custom data type
Combining hash values
Disabling The Extensions
Change Log
Header <boost/container_hash/hash.hpp>

boost::hash is an implementation of the hash function object specified by the Draft Technical Report on C++ Library Extensions (TR1). It is the default hash function for Boost.Unordered, Boost.Intrusive's unordered associative containers, and Boost.MultiIndex's hash indicies and Boost.Bimap's unordered_set_of.

As it is compliant with TR1, it will work with:

  • integers
  • floats
  • pointers
  • strings

It also implements the extension proposed by Peter Dimov in issue 6.18 of the Library Extension Technical Report Issues List (page 63), this adds support for:

  • arrays
  • std::pair
  • the standard containers.
  • extending boost::hash for custom types.
[Note] Note

This hash function is designed to be used in containers based on the STL and is not suitable as a general purpose hash function. For more details see the rationale.

Last revised: December 02, 2021 at 06:54:58 GMT