mijin2/source/mijin/util/hash.hpp

20 lines
395 B
C++

#pragma once
#if !defined(MIJIN_UTIL_HASH_HPP_INCLUDED)
#define MIJIN_UTIL_HASH_HPP_INCLUDED 1
#include <functional>
namespace mijin
{
template<typename T, typename THasher = std::hash<T>>
inline void hashCombine(std::size_t& seed, const T& value, const THasher& hasher = {})
{
seed ^= hasher(value) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
}
}
#endif // MIJIN_UTIL_HASH_HPP_INCLUDED