Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
stenzek
GitHub Repository: stenzek/duckstation
Path: blob/master/src/common/hash_combine.h
4211 views
1
// SPDX-FileCopyrightText: 2019-2024 Connor McLaughlin <[email protected]>
2
// SPDX-License-Identifier: CC-BY-NC-ND-4.0
3
4
#pragma once
5
6
#include <functional>
7
8
// https://stackoverflow.com/questions/2590677/how-do-i-combine-hash-values-in-c0x
9
template<typename T, typename... Rest>
10
void hash_combine(std::size_t& seed, const T& v, const Rest&... rest)
11
{
12
seed ^= std::hash<T>{}(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
13
(hash_combine(seed, rest), ...);
14
}
15
16