-template <class KeyT, class ValueT,
- class HashFcn, class EqualFcn, class Allocator>
-typename AtomicHashArray<KeyT, ValueT,
- HashFcn, EqualFcn, Allocator>::SimpleRetT
-AtomicHashArray<KeyT, ValueT, HashFcn, EqualFcn, Allocator>::
-findInternal(const KeyT key_in) {
- DCHECK_NE(key_in, kEmptyKey_);
- DCHECK_NE(key_in, kLockedKey_);
- DCHECK_NE(key_in, kErasedKey_);
- for (size_t idx = keyToAnchorIdx(key_in), numProbes = 0;
+template <
+ class KeyT,
+ class ValueT,
+ class HashFcn,
+ class EqualFcn,
+ class Allocator,
+ class ProbeFcn,
+ class KeyConvertFcn>
+template <class LookupKeyT, class LookupHashFcn, class LookupEqualFcn>
+typename AtomicHashArray<KeyT, ValueT, HashFcn, EqualFcn,
+ Allocator, ProbeFcn, KeyConvertFcn>::SimpleRetT
+AtomicHashArray<KeyT, ValueT, HashFcn, EqualFcn,
+ Allocator, ProbeFcn, KeyConvertFcn>::
+findInternal(const LookupKeyT key_in) {
+ checkLegalKeyIfKey<LookupKeyT>(key_in);
+
+ for (size_t idx = keyToAnchorIdx<LookupKeyT, LookupHashFcn>(key_in),
+ numProbes = 0;