[#BloombergLP-bslalg-HashTableImpUtil-findTransparent]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslalg.adoc[bslalg]::xref:BloombergLP/bslalg/HashTableImpUtil.adoc[HashTableImpUtil]::findTransparent
:relfileprefix: ../../../
:mrdocs:

Return the first node matching `key` with transparent equality, or null&period;

== Synopsis

Declared in `&lt;bslalg&lowbar;hashtableimputil&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class KEY&lowbar;CONFIG,
    class LOOKUP&lowbar;KEY,
    class KEY&lowbar;EQUAL&gt;
static
xref:BloombergLP/bslalg/BidirectionalLink.adoc[BidirectionalLink]*
findTransparent(
    xref:BloombergLP/bslalg/HashTableAnchor.adoc[HashTableAnchor] const& anchor,
    LOOKUP&lowbar;KEY const& key,
    KEY&lowbar;EQUAL const& equalityFunctor,
    std::size&lowbar;t hashCode);
----

== Description

Return the address of the first link in the list element of the specified `anchor` having a value matching (according to the specified transparent `equalityFunctor`) the specified `key` in the bucket that holds elements with the specified `hashCode` if such a link exists, and return 0 otherwise&period; The behavior is undefined unless, for the provided `KEY&lowbar;CONFIG` and some hash function, `HASHER`, `anchor` is well&hyphen;formed (see `isWellFormed`) and `HASHER(key)` returns `hashCode`&period; `KEY&lowbar;CONFIG` shall be a namespace providing the type names `KeyType` and `ValueType`, as well as a function that can be called as if it had the following signature&colon; &grave; const KeyType&amp; extractKey(const ValueType&amp; obj)&semi; &grave; `KEY&lowbar;EQUAL` shall be a functor that can be called as if it had the following signature&colon; &grave; bool operator()(const LOOKUP&lowbar;KEY&amp; key1, const KEY&lowbar;CONFIG&colon;&colon;KeyType&amp; key2)

&grave;

== Return Value

address of the matching link, or 0 if none

== Parameters

[cols="1,4"]
|===
| Name| Description
| *anchor*
| hash table to search
| *key*
| lookup key compared using the transparent equality functor
| *equalityFunctor*
| transparent predicate comparing `key` to stored keys
| *hashCode*
| non&hyphen;adjusted hash code of `key`
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
