BloombergLP::bslh::Hash

This struct wraps the (template parameter) type HASH_ALGORITHM in an interface that satisfies the hash requirements of the C++11 standard.

Synopsis

Declared in <bslh_hash.h>

template<class HASH_ALGORITHM = bslh::DefaultHashAlgorithm>
struct Hash;

Type Aliases

NameDescription
HashAlgorithm Make the HASH_ALGORITHM template parameter available to clients.
result_type The type of the hash value that will be returned by the function-call operator.

Member Functions

NameDescription
operator() Returns a hash value generated by the (template parameter) type HASH_ALGORITHM for the specified type. The value returned by the HASH_ALGORITHM is cast to size_t before returning.

Specializations

NameDescription
Hash<> This struct wraps the (template parameter) type HASH_ALGORITHM in an interface that satisfies the hash requirements of the C++11 standard.
Hash<std::filesystem::path> Specialization of hash for std::filesystem::path values.

Derived Classes

NameDescription
hash<basic_string<CHAR_TYPE, CHAR_TRAITS, ALLOCATOR>> Specialize bsl::hash for strings, including an overload for pointers to allow character arrays to be hashed without converting them first.
hash Empty base class for hashing. This class, and all explicit and partial specializations of this class, shall conform to the C++11 Hash Requirements (C++11 17.6.3.4, [hash.requirements]). Unless this template is explicitly specialized, it will use the default hash algorithm provided by bslh::Hash<> to supply hash values. In order to hash a user-defined type using bsl::hash, bsl::hash must be explicitly specialized for the type, or, preferably, hashAppend must be implemented for the type. For more details on hashAppend and bslh::Hash see the component bslh_hash.