49namespace tracktion {
inline namespace core
58 static_assert (!
std::is_pointer_v<T>,
"Using a pointer here is almost certainly incorrect as it will change on each run");
59 seed ^=
std::hash<T>()(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
68 for (; first != last; ++first)
78 for (; first != last; ++first)
83template<
typename Container>
86 return hash_range (container.begin(), container.end());
91[[ nodiscard ]]
size_t hash (
size_t seed,
const T& v)
void hash_combine(size_t &seed, const T &v)
Hashes a type with a given seed, modifying the seed.
std::size_t hash_range(It first, It last)
Hashes a range with a default seed and returns the new hash value.
size_t hash(size_t seed, const T &v)
Hashes a type with a given seed and returns the new hash value.