#include <hash.h>
Public Types | |
using | ValueType = HashInt |
Public Member Functions | |
constexpr MAXON_IMPLICIT | DefaultHasher (HashInt start=EMPTY_HASH) |
constexpr void | Combine (HashInt value) |
void | CombineUnordered (HashInt value) |
constexpr HashInt | Finalize () const |
constexpr | operator HashInt () const |
template<typename... ARGS> | |
void | HashAndCombine (const ARGS &... args) |
Static Public Member Functions | |
static constexpr UInt32 | Mix (UInt32 h) |
static constexpr UInt64 | Mix (UInt64 h) |
static constexpr HashInt | SplitMix (HashInt value) |
template<typename... R> | |
static constexpr HashInt | CombineHashes (HashInt first, R... rest) |
Static Public Attributes | |
static constexpr HashInt | EMPTY_HASH |
Private Attributes | |
HashInt | _state |
|
constexpr |
|
constexpr |
Combines the given value with the current state in an ordered way, which means that the effect of multiple calls to Combine does depend on the order of those calls. You can use this function to compute a hash value of a sequence of HashInts when the sequence order is important.
[in] | value | A hash value. |
void CombineUnordered | ( | HashInt | value | ) |
Combines the given value with the current state in an unordered way, which means that the effect of multiple calls to CombineUnordered doesn't depend on the order of those calls. You can use this function to compute a hash value of a sequence of HashInts when the sequence order shall be irrelevant.
[in] | value | A hash value. |
|
constexpr |
|
constexpr |
void HashAndCombine | ( | const ARGS &... | args | ) |
|
staticconstexpr |
|
private |