Go to the source code of this file.
◆ JPH_MAKE_HASH_STRUCT
#define JPH_MAKE_HASH_STRUCT |
( |
|
type, |
|
|
|
name, |
|
|
|
... |
|
) |
| |
Value: struct [[nodiscard]] name \
{ \
std::size_t operator()(const type &t) const \
{ \
std::size_t ret = 0; \
::JPH::HashCombine(ret, __VA_ARGS__); \
return ret; \
} \
};
◆ JPH_MAKE_HASHABLE
#define JPH_MAKE_HASHABLE |
( |
|
type, |
|
|
|
... |
|
) |
| |
Value: JPH_SUPPRESS_WARNING_PUSH \
JPH_SUPPRESS_WARNINGS \
{ \
template<> \
JPH_MAKE_HASH_STRUCT(type, hash<type>, __VA_ARGS__) \
} \
JPH_SUPPRESS_WARNING_POP
◆ Hash64()
◆ HashBytes()
◆ HashCombine()
template<typename... Values>
void HashCombine |
( |
std::size_t & |
ioSeed, |
|
|
Values... |
inValues |
|
) |
| |
|
inline |
Hash combiner to use a custom struct in an unordered map or set
Usage:
struct SomeHashKey
{
std::string key1;
std::string key2;
bool key3;
};
JPH_MAKE_HASHABLE(SomeHashKey, t.key1, t.key2, t.key3)
◆ HashCombineHelper()
template<typename T >
void HashCombineHelper |
( |
size_t & |
ioSeed, |
|
|
const T & |
inValue |
|
) |
| |
|
inline |