Hashing

Header: fiction/utils/stl/hash.hpp

This header defines implementations for std::hash for several data types.

template<typename T, typename ...Rest>
void fiction::utils::stl::hash_combine(std::size_t &seed, const T &v, const Rest&... rest)

A recursive hash_combine implementation from https://stackoverflow.com/questions/2590677/how-do-i-combine-hash-values-in-c0x

Overrides the passed seed.

Template Parameters:
  • T – Type to hash.

  • Rest – Parameter pack.

Parameters:
  • seed – Hashing seed. This value is overridden with the hash value.

  • v – Value to hash next.

  • rest – Remaining values to hash.