Update phmap::Hash so that std::hash<Foo*> can be overridden - issue #168

This commit is contained in:
greg7mdp
2022-10-01 00:01:18 -04:00
parent 267fc4ddc8
commit a10ad015db
2 changed files with 4 additions and 11 deletions
Vendored Regular → Executable
+3 -1
View File
@@ -4426,7 +4426,9 @@ struct HashEq<T*>
using is_transparent = void;
template <class U>
size_t operator()(const U& ptr) const {
return phmap::Hash<const T*>{}(HashEq::ToPtr(ptr));
// we want phmap::Hash<T*> and not phmap::Hash<const T*>
// so "struct std::hash<T*> " override works
return phmap::Hash<T*>{}((T*)(uintptr_t)HashEq::ToPtr(ptr));
}
};