diff --git a/util/vkgcMetroHash.h b/util/vkgcMetroHash.h index 59daf86c42..ce920c9a45 100644 --- a/util/vkgcMetroHash.h +++ b/util/vkgcMetroHash.h @@ -86,6 +86,13 @@ inline bool operator!=(const Hash &lhs, const Hash &rhs) { namespace std { template <> struct hash { // Returns `hash` compacted to `size_t`. Returns zero for value-initialized hashes. - size_t operator()(const MetroHash::Hash &hash) const { return static_cast(MetroHash::compact64(&hash)); } + size_t operator()(const MetroHash::Hash &hash) const { + if constexpr (sizeof(size_t) == 8) { + return static_cast(MetroHash::compact64(&hash)); + } else { + assert(sizeof(size_t) == 4); + return static_cast(MetroHash::compact32(&hash)); + } + } }; } // namespace std