\hypertarget{structkblib_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_01std_1_1is__pointer_3_01_t_01_4_1_1value_01_4_01_4}{}\doxysection{kblib\+::FNV\+\_\+hash\texorpdfstring{$<$}{<} T, Hash\+Int, void\+\_\+if\+\_\+t\texorpdfstring{$<$}{<} std\+::is\+\_\+pointer\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}\+::value \texorpdfstring{$>$}{>} \texorpdfstring{$>$}{>} Struct Template Reference}
\label{structkblib_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_01std_1_1is__pointer_3_01_t_01_4_1_1value_01_4_01_4}\index{kblib::FNV\_hash$<$ T, HashInt, void\_if\_t$<$ std::is\_pointer$<$ T $>$::value $>$ $>$@{kblib::FNV\_hash$<$ T, HashInt, void\_if\_t$<$ std::is\_pointer$<$ T $>$::value $>$ $>$}}


Hasher for any pointer type.  




{\ttfamily \#include $<$kblib/hash.\+h$>$}

\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
auto \mbox{\hyperlink{structkblib_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_01std_1_1is__pointer_3_01_t_01_4_1_1value_01_4_01_4_a5a642e8a29c20989e25b193c6a297bb9}{operator()}} (T key\+\_\+in, Hash\+Int offset=\mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$ Hash\+Int $>$\+::value) const noexcept -\/$>$ Hash\+Int
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename T, typename Hash\+Int$>$\newline
struct kblib\+::\+FNV\+\_\+hash$<$ T, Hash\+Int, void\+\_\+if\+\_\+t$<$ std\+::is\+\_\+pointer$<$ T $>$\+::value $>$ $>$}
Hasher for any pointer type. 

\begin{DoxyNote}{Note}
Unfortunately, this specialization cannot be constexpr 
\end{DoxyNote}


Definition at line \mbox{\hyperlink{hash_8h_source_l00466}{466}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{structkblib_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_01std_1_1is__pointer_3_01_t_01_4_1_1value_01_4_01_4_a5a642e8a29c20989e25b193c6a297bb9}\label{structkblib_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_01std_1_1is__pointer_3_01_t_01_4_1_1value_01_4_01_4_a5a642e8a29c20989e25b193c6a297bb9}} 
\index{kblib::FNV\_hash$<$ T, HashInt, void\_if\_t$<$ std::is\_pointer$<$ T $>$::value $>$ $>$@{kblib::FNV\_hash$<$ T, HashInt, void\_if\_t$<$ std::is\_pointer$<$ T $>$::value $>$ $>$}!operator()@{operator()}}
\index{operator()@{operator()}!kblib::FNV\_hash$<$ T, HashInt, void\_if\_t$<$ std::is\_pointer$<$ T $>$::value $>$ $>$@{kblib::FNV\_hash$<$ T, HashInt, void\_if\_t$<$ std::is\_pointer$<$ T $>$::value $>$ $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}}
{\footnotesize\ttfamily template$<$typename T , typename Hash\+Int $>$ \\
auto \mbox{\hyperlink{structkblib_1_1_f_n_v__hash}{kblib\+::\+FNV\+\_\+hash}}$<$ T, Hash\+Int, \mbox{\hyperlink{namespacekblib_ab3cc24416f0b9a6504e1c6a437ed6230}{void\+\_\+if\+\_\+t}}$<$ std\+::is\+\_\+pointer$<$ T $>$\+::value $>$ $>$\+::operator() (\begin{DoxyParamCaption}\item[{T}]{key\+\_\+in,  }\item[{Hash\+Int}]{offset = {\ttfamily \mbox{\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$HashInt$>$\+:\+:value} }\end{DoxyParamCaption}) const -\/$>$ Hash\+Int \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{hash_8h_source_l00467}{467}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
kblib/\mbox{\hyperlink{hash_8h}{hash.\+h}}\end{DoxyCompactItemize}
