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

Name

Description

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

Name

Description

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

Name

Description

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

Name

Description

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.

Created with MrDocs