\hypertarget{struct_k_b_l_i_b___n_s_1_1_f_n_v__hash_3_01_tuple_00_01_hash_int_00_01void__if__t_3_01detail__ha702b33f92246af3db97021c756784315}{}\doxysection{KBLIB\+\_\+\+NS\+::FNV\+\_\+hash\texorpdfstring{$<$}{<} Tuple, Hash\+Int, void\+\_\+if\+\_\+t\texorpdfstring{$<$}{<} detail\+\_\+hash\+::all\+\_\+hashable\texorpdfstring{$<$}{<} Tuple \texorpdfstring{$>$}{>}() and not is\+\_\+trivially\+\_\+hashable\+\_\+v\texorpdfstring{$<$}{<} Tuple \texorpdfstring{$>$}{>} and(std\+::tuple\+\_\+size\texorpdfstring{$<$}{<} Tuple \texorpdfstring{$>$}{>}\+::value \texorpdfstring{$>$}{>} 0u) and not is\+\_\+linear\+\_\+container\+\_\+v\texorpdfstring{$<$}{<} Tuple \texorpdfstring{$>$}{>} \texorpdfstring{$>$}{>} \texorpdfstring{$>$}{>} Struct Template Reference}
\label{struct_k_b_l_i_b___n_s_1_1_f_n_v__hash_3_01_tuple_00_01_hash_int_00_01void__if__t_3_01detail__ha702b33f92246af3db97021c756784315}\index{KBLIB\_NS::FNV\_hash$<$ Tuple, HashInt, void\_if\_t$<$ detail\_hash::all\_hashable$<$ Tuple $>$() and not is\_trivially\_hashable\_v$<$ Tuple $>$ and(std::tuple\_size$<$ Tuple $>$::value $>$ 0u) and not is\_linear\_container\_v$<$ Tuple $>$ $>$ $>$@{KBLIB\_NS::FNV\_hash$<$ Tuple, HashInt, void\_if\_t$<$ detail\_hash::all\_hashable$<$ Tuple $>$() and not is\_trivially\_hashable\_v$<$ Tuple $>$ and(std::tuple\_size$<$ Tuple $>$::value $>$ 0u) and not is\_linear\_container\_v$<$ Tuple $>$ $>$ $>$}}


Tuple-\/like (but not array-\/like) type hasher.  




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

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


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename Tuple, typename Hash\+Int$>$\newline
struct KBLIB\+\_\+\+NS\+::\+FNV\+\_\+hash$<$ Tuple, Hash\+Int, void\+\_\+if\+\_\+t$<$ detail\+\_\+hash\+::all\+\_\+hashable$<$ Tuple $>$() and not is\+\_\+trivially\+\_\+hashable\+\_\+v$<$ Tuple $>$ and(std\+::tuple\+\_\+size$<$ Tuple $>$\+::value $>$ 0u) and not is\+\_\+linear\+\_\+container\+\_\+v$<$ Tuple $>$ $>$ $>$}
Tuple-\/like (but not array-\/like) type hasher. 

Definition at line \mbox{\hyperlink{hash_8h_source_l00695}{695}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{struct_k_b_l_i_b___n_s_1_1_f_n_v__hash_3_01_tuple_00_01_hash_int_00_01void__if__t_3_01detail__ha702b33f92246af3db97021c756784315_afecda1233e6ca7106178fab88662bf47}\label{struct_k_b_l_i_b___n_s_1_1_f_n_v__hash_3_01_tuple_00_01_hash_int_00_01void__if__t_3_01detail__ha702b33f92246af3db97021c756784315_afecda1233e6ca7106178fab88662bf47}} 
\index{KBLIB\_NS::FNV\_hash$<$ Tuple, HashInt, void\_if\_t$<$ detail\_hash::all\_hashable$<$ Tuple $>$() and not is\_trivially\_hashable\_v$<$ Tuple $>$ and(std::tuple\_size$<$ Tuple $>$::value $>$ 0u) and not is\_linear\_container\_v$<$ Tuple $>$ $>$ $>$@{KBLIB\_NS::FNV\_hash$<$ Tuple, HashInt, void\_if\_t$<$ detail\_hash::all\_hashable$<$ Tuple $>$() and not is\_trivially\_hashable\_v$<$ Tuple $>$ and(std::tuple\_size$<$ Tuple $>$::value $>$ 0u) and not is\_linear\_container\_v$<$ Tuple $>$ $>$ $>$}!operator()@{operator()}}
\index{operator()@{operator()}!KBLIB\_NS::FNV\_hash$<$ Tuple, HashInt, void\_if\_t$<$ detail\_hash::all\_hashable$<$ Tuple $>$() and not is\_trivially\_hashable\_v$<$ Tuple $>$ and(std::tuple\_size$<$ Tuple $>$::value $>$ 0u) and not is\_linear\_container\_v$<$ Tuple $>$ $>$ $>$@{KBLIB\_NS::FNV\_hash$<$ Tuple, HashInt, void\_if\_t$<$ detail\_hash::all\_hashable$<$ Tuple $>$() and not is\_trivially\_hashable\_v$<$ Tuple $>$ and(std::tuple\_size$<$ Tuple $>$::value $>$ 0u) and not is\_linear\_container\_v$<$ Tuple $>$ $>$ $>$}}
\doxysubsubsection{\texorpdfstring{operator()()}{operator()()}}
{\footnotesize\ttfamily template$<$typename Tuple , typename Hash\+Int $>$ \\
constexpr auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1_f_n_v__hash}{KBLIB\+\_\+\+NS\+::\+FNV\+\_\+hash}}$<$ Tuple, Hash\+Int, \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a0091fb16bc1767a3e5e1cff5aa8dff53}{void\+\_\+if\+\_\+t}}$<$ \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__hash_a3f6882f549affdefdf94f04a8e1f14d3}{detail\+\_\+hash\+::all\+\_\+hashable}}$<$ Tuple $>$() and not \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab285613a76758ad7a7693b5562101634}{is\+\_\+trivially\+\_\+hashable\+\_\+v}}$<$ Tuple $>$ and(std\+::tuple\+\_\+size$<$ Tuple $>$\+::value $>$ 0u) and not is\+\_\+linear\+\_\+container\+\_\+v$<$ Tuple $>$ $>$ $>$\+::operator() (\begin{DoxyParamCaption}\item[{const Tuple \&}]{key,  }\item[{Hash\+Int}]{offset = {\ttfamily \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}}$<$HashInt$>$\+:\+:value} }\end{DoxyParamCaption}) const -\/$>$ Hash\+Int \hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Definition at line \mbox{\hyperlink{hash_8h_source_l00700}{700}} 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}
