86 if constexpr (std::is_enum_v<T>) {
104 return T::hash_as(value);
118#define TRIVIAL_DEFAULT_INT_HASH(TYPE) \
119 template<> struct DefaultHash<TYPE> { \
120 uint64_t operator()(TYPE value) const \
122 return uint64_t(value); \
155 return *
reinterpret_cast<uint64_t *
>(&value);
162 return uint64_t((value !=
false) * 1298191);
228 return h1 ^ (h2 * 19349669);
231template<
typename T1,
typename T2,
typename T3>
237 return h1 ^ (h2 * 19349669) ^ (h3 * 83492791);
240template<
typename T1,
typename T2,
typename T3,
typename T4>
247 return h1 ^ (h2 * 19349669) ^ (h3 * 83492791) ^ (h4 * 3632623);
261template<
typename T>
struct DefaultHash<std::reference_wrapper<T>> {
268template<
typename T1,
typename T2>
struct DefaultHash<std::pair<T1, T2>> {
#define TRIVIAL_DEFAULT_INT_HASH(TYPE)
typedef double(DMatrix)[4][4]
ATTR_WARN_UNUSED_RESULT const BMVert * v2
ATTR_WARN_UNUSED_RESULT const BMVert * v
draw_view in_light_buf[] float
uint64_t hash_string(StringRef str)
uint64_t get_default_hash(const T &v)
_W64 unsigned int uintptr_t
unsigned __int64 uint64_t
uint64_t operator()(StringRef value) const
uint64_t operator()(StringRef value) const
uint64_t operator()(const T *value) const
uint64_t operator()(bool value) const
uint64_t operator()(const T &value) const
uint64_t operator()(double value) const
uint64_t operator()(float value) const
uint64_t operator()(const std::pair< T1, T2 > &value) const
uint64_t operator()(const std::reference_wrapper< T > &value) const
uint64_t operator()(StringRef value) const
uint64_t operator()(StringRef value) const
uint64_t operator()(const T &value) const
uint64_t operator()(const U &value) const
uint64_t operator()(const U &value) const