From 4c7e7c7d94eaaa3bff3142c257d880a468a35934 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Wed, 31 Jan 2024 13:45:52 -0800 Subject: Type erased hash_slot_fn that depends only on key types (and hash function). PiperOrigin-RevId: 603148301 Change-Id: Ie2e5702995c9e1ef4d5aaab23bc89a1eb5007a86 --- absl/container/internal/raw_hash_set_test.cc | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'absl/container/internal/raw_hash_set_test.cc') diff --git a/absl/container/internal/raw_hash_set_test.cc b/absl/container/internal/raw_hash_set_test.cc index 6baaa060..7ec72b22 100644 --- a/absl/container/internal/raw_hash_set_test.cc +++ b/absl/container/internal/raw_hash_set_test.cc @@ -405,6 +405,11 @@ struct ValuePolicy { return absl::container_internal::DecomposeValue( std::forward(f), std::forward(args)...); } + + template + static constexpr HashSlotFn get_hash_slot_fn() { + return nullptr; + } }; using IntPolicy = ValuePolicy; @@ -468,6 +473,11 @@ class StringPolicy { return apply_impl(std::forward(f), PairArgs(std::forward(args)...)); } + + template + static constexpr HashSlotFn get_hash_slot_fn() { + return nullptr; + } }; struct StringHash : absl::Hash { @@ -923,6 +933,11 @@ struct DecomposePolicy { static auto apply(F&& f, const T& x) -> decltype(std::forward(f)(x, x)) { return std::forward(f)(x, x); } + + template + static constexpr HashSlotFn get_hash_slot_fn() { + return nullptr; + } }; template @@ -1083,7 +1098,7 @@ size_t MaxDensitySize(size_t n) { } struct Modulo1000Hash { - size_t operator()(int x) const { return x % 1000; } + size_t operator()(int64_t x) const { return static_cast(x) % 1000; } }; struct Modulo1000HashTable @@ -2664,7 +2679,7 @@ using RawHashSetAlloc = raw_hash_set, TEST(Table, AllocatorPropagation) { TestAllocPropagation(); } struct CountedHash { - size_t operator()(int value) const { + size_t operator()(int64_t value) const { ++count; return static_cast(value); } -- cgit v1.2.3