# HashCompare

[req.hash_compare]

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.

H::~H()

  Destructor.

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

  Calculates the hash for a provided key.

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

  Requirements:

  - The type `ReturnType` should be implicitly convertible to `bool`.

  Compares `k1` and `k2` for equality.

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