[#std-hash-07]
= xref:std.adoc[std]::hash&lt;T&gt;
:relfileprefix: ../
:mrdocs:

Hash support so strong types can be keys in unordered containers&period;

== Synopsis

Declared in `&lt;folly&sol;lang&sol;Strong&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
requires (
      folly&colon;&colon;is&lowbar;strong&lt;T&gt; &amp;&amp;
      &sol;&sol; Required for &grave;folly&colon;&colon;is&lowbar;hashable&lowbar;v&grave; to be correct&period;
      requires(typename T&colon;&colon;underlying&lowbar;type underlying) &lcub;
        &lcub;
          std&colon;&colon;hash&lt;typename T&colon;&colon;underlying&lowbar;type&gt;&lcub;&rcub;(underlying)
        &rcub; &hyphen;&gt; std&colon;&colon;convertible&lowbar;to&lt;std&colon;&colon;size&lowbar;t&gt;&semi;
      &rcub;)
struct hash&lt;T&gt;;
----

== Description

A strong type is hashable iff the underlying type is&period;

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:std/hash-07/operator_call.adoc[`operator()`] 
| Hash a strong value by hashing its underlying value&period;
|===



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