diff --git a/parallel_hashmap/phmap.h b/parallel_hashmap/phmap.h old mode 100644 new mode 100755 index 48173fe..437ec64 --- a/parallel_hashmap/phmap.h +++ b/parallel_hashmap/phmap.h @@ -4426,7 +4426,9 @@ struct HashEq using is_transparent = void; template size_t operator()(const U& ptr) const { - return phmap::Hash{}(HashEq::ToPtr(ptr)); + // we want phmap::Hash and not phmap::Hash + // so "struct std::hash " override works + return phmap::Hash{}((T*)(uintptr_t)HashEq::ToPtr(ptr)); } }; diff --git a/parallel_hashmap/phmap_utils.h b/parallel_hashmap/phmap_utils.h index 4adef4e..dcf1cb7 100644 --- a/parallel_hashmap/phmap_utils.h +++ b/parallel_hashmap/phmap_utils.h @@ -164,16 +164,7 @@ struct Hash return _hash(val); } }; - -template -struct Hash -{ - inline size_t operator()(const T *val) const noexcept - { - return static_cast(reinterpret_cast(val)); - } -}; - + template struct phmap_unary_function {