HashCompare is an object which is used to calculate hash code for an object and compare two objects for equality.

The type H satisfies HashCompare if it meets the following requirements:

HashCompare Requirements: Pseudo-Signature, Semantics

H::H(const H&)

Copy constructor



std::size_t H::hash(const KeyType &k)

Calculates the hash for provided key.

ReturnType H::equal(const KeyType &k1, const KeyType &k2)


  • The type ReturnType should be implicitly convertible to bool

Compares k1 and k2 for equality.

If this function returns true then H::hash(k1) should be equal to H::hash(k2).