diff options
author | Abseil Team <absl-team@google.com> | 2024-01-31 13:45:52 -0800 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-01-31 13:46:58 -0800 |
commit | 4c7e7c7d94eaaa3bff3142c257d880a468a35934 (patch) | |
tree | b8418ca1620a45c7c772945194e9537165ac13f4 /absl/container/node_hash_map.h | |
parent | 780bfc194d807dbd56363635ca40bf96743aa00b (diff) | |
download | abseil-4c7e7c7d94eaaa3bff3142c257d880a468a35934.tar.gz abseil-4c7e7c7d94eaaa3bff3142c257d880a468a35934.tar.bz2 abseil-4c7e7c7d94eaaa3bff3142c257d880a468a35934.zip |
Type erased hash_slot_fn that depends only on key types (and hash function).
PiperOrigin-RevId: 603148301
Change-Id: Ie2e5702995c9e1ef4d5aaab23bc89a1eb5007a86
Diffstat (limited to 'absl/container/node_hash_map.h')
-rw-r--r-- | absl/container/node_hash_map.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/absl/container/node_hash_map.h b/absl/container/node_hash_map.h index a396de2e..72e78958 100644 --- a/absl/container/node_hash_map.h +++ b/absl/container/node_hash_map.h @@ -36,6 +36,7 @@ #ifndef ABSL_CONTAINER_NODE_HASH_MAP_H_ #define ABSL_CONTAINER_NODE_HASH_MAP_H_ +#include <cstddef> #include <tuple> #include <type_traits> #include <utility> @@ -590,6 +591,13 @@ class NodeHashMapPolicy static Value& value(value_type* elem) { return elem->second; } static const Value& value(const value_type* elem) { return elem->second; } + + template <class Hash> + static constexpr HashSlotFn get_hash_slot_fn() { + return memory_internal::IsLayoutCompatible<Key, Value>::value + ? &TypeErasedDerefAndApplyToSlotFn<Hash, Key> + : nullptr; + } }; } // namespace container_internal |