...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::intrusive::bucket_hash_t
// In header: <boost/intrusive/hashtable.hpp> template<typename ValueTraits, typename VoidOrKeyOfValue, typename VoidOrKeyHash, typename BucketTraits, bool LinearBuckets> struct bucket_hash_t : public boost::intrusive::bucket_plus_vtraits< ValueTraits, BucketTraits, LinearBuckets > { // types typedef bucket_plus_vtraits< ValueTraits, BucketTraits, LinearBuckets >::value_traits value_traits; typedef value_traits::value_type value_type; typedef value_traits::node_traits node_traits; typedef hash_key_hash< value_type, VoidOrKeyOfValue, VoidOrKeyHash > hash_key_hash_t; typedef hash_key_hash_t::type hasher; typedef hash_key_types_base< value_type, VoidOrKeyOfValue >::key_of_value key_of_value; typedef BucketTraits bucket_traits; typedef bucket_plus_vtraits< ValueTraits, BucketTraits, LinearBuckets > bucket_plus_vtraits_t; typedef unspecified base_t; // construct/copy/destruct bucket_hash_t(const ValueTraits &, const bucket_traits &, const hasher &); bucket_hash_t(bucket_hash_t &&); // public member functions template<typename K> std::size_t priv_hash(const K &) const; const hasher & priv_hasher() const; hasher & priv_hasher(); std::size_t priv_stored_or_compute_hash(const value_type &, unspecified) const; };