\hypertarget{struct_k_b_l_i_b___n_s_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_07std_1_1is__basea486f0654055be00075b7ba16e1b406}{}\doxysection{KBLIB\+\_\+\+NS\+::FNV\+\_\+hash\texorpdfstring{$<$}{<} T, Hash\+Int, void\+\_\+if\+\_\+t\texorpdfstring{$<$}{<}(std\+::is\+\_\+base\+\_\+of\texorpdfstring{$<$}{<} std\+::forward\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}\+::iterator\+\_\+category \texorpdfstring{$>$}{>}\+::value and not std\+::is\+\_\+pointer\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}\+::value and not is\+\_\+trivially\+\_\+hashable\+\_\+v\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>} and std\+::is\+\_\+pointer\texorpdfstring{$<$}{<} typename fakestd\+::invoke\+\_\+result\texorpdfstring{$<$}{<} decltype(\&T\+::operator-\/\texorpdfstring{$>$}{>}), T \texorpdfstring{$>$}{>}\+::type \texorpdfstring{$>$}{>}\+::value)\texorpdfstring{$>$}{>} \texorpdfstring{$>$}{>} Struct Template Reference} \label{struct_k_b_l_i_b___n_s_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_07std_1_1is__basea486f0654055be00075b7ba16e1b406}\index{KBLIB\_NS::FNV\_hash$<$ T, HashInt, void\_if\_t$<$(std::is\_base\_of$<$ std::forward\_iterator\_tag, typename std::iterator\_traits$<$ T $>$::iterator\_category $>$::value and not std::is\_pointer$<$ T $>$::value and not is\_trivially\_hashable\_v$<$ T $>$ and std::is\_pointer$<$ typename fakestd::invoke\_result$<$ decltype(\&T::operator-\/$>$), T $>$::type $>$::value)$>$ $>$@{KBLIB\_NS::FNV\_hash$<$ T, HashInt, void\_if\_t$<$(std::is\_base\_of$<$ std::forward\_iterator\_tag, typename std::iterator\_traits$<$ T $>$::iterator\_category $>$::value and not std::is\_pointer$<$ T $>$::value and not is\_trivially\_hashable\_v$<$ T $>$ and std::is\_pointer$<$ typename fakestd::invoke\_result$<$ decltype(\&T::operator-\/$>$), T $>$::type $>$::value)$>$ $>$}} Hasher for any forward iterator type. {\ttfamily \#include $<$kblib/hash.\+h$>$} \doxysubsection*{Public Member Functions} \begin{DoxyCompactItemize} \item auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_07std_1_1is__basea486f0654055be00075b7ba16e1b406_a1d8f4dfe8d5716283cd9e51825db4e5c}{operator()}} (T key\+\_\+in, 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 T, typename Hash\+Int$>$\newline struct KBLIB\+\_\+\+NS\+::\+FNV\+\_\+hash$<$ T, Hash\+Int, void\+\_\+if\+\_\+t$<$(std\+::is\+\_\+base\+\_\+of$<$ std\+::forward\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ T $>$\+::iterator\+\_\+category $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and not is\+\_\+trivially\+\_\+hashable\+\_\+v$<$ T $>$ and std\+::is\+\_\+pointer$<$ typename fakestd\+::invoke\+\_\+result$<$ decltype(\&\+T\+::operator-\/$>$), T $>$\+::type $>$\+::value)$>$ $>$} Hasher for any forward iterator type. \begin{DoxyNote}{Note} Unfortunately, this specialization cannot be constexpr. \end{DoxyNote} Definition at line \mbox{\hyperlink{hash_8h_source_l00482}{482}} 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_t_00_01_hash_int_00_01void__if__t_3_07std_1_1is__basea486f0654055be00075b7ba16e1b406_a1d8f4dfe8d5716283cd9e51825db4e5c}\label{struct_k_b_l_i_b___n_s_1_1_f_n_v__hash_3_01_t_00_01_hash_int_00_01void__if__t_3_07std_1_1is__basea486f0654055be00075b7ba16e1b406_a1d8f4dfe8d5716283cd9e51825db4e5c}} \index{KBLIB\_NS::FNV\_hash$<$ T, HashInt, void\_if\_t$<$(std::is\_base\_of$<$ std::forward\_iterator\_tag, typename std::iterator\_traits$<$ T $>$::iterator\_category $>$::value and not std::is\_pointer$<$ T $>$::value and not is\_trivially\_hashable\_v$<$ T $>$ and std::is\_pointer$<$ typename fakestd::invoke\_result$<$ decltype(\&T::operator-\/$>$), T $>$::type $>$::value)$>$ $>$@{KBLIB\_NS::FNV\_hash$<$ T, HashInt, void\_if\_t$<$(std::is\_base\_of$<$ std::forward\_iterator\_tag, typename std::iterator\_traits$<$ T $>$::iterator\_category $>$::value and not std::is\_pointer$<$ T $>$::value and not is\_trivially\_hashable\_v$<$ T $>$ and std::is\_pointer$<$ typename fakestd::invoke\_result$<$ decltype(\&T::operator-\/$>$), T $>$::type $>$::value)$>$ $>$}!operator()@{operator()}} \index{operator()@{operator()}!KBLIB\_NS::FNV\_hash$<$ T, HashInt, void\_if\_t$<$(std::is\_base\_of$<$ std::forward\_iterator\_tag, typename std::iterator\_traits$<$ T $>$::iterator\_category $>$::value and not std::is\_pointer$<$ T $>$::value and not is\_trivially\_hashable\_v$<$ T $>$ and std::is\_pointer$<$ typename fakestd::invoke\_result$<$ decltype(\&T::operator-\/$>$), T $>$::type $>$::value)$>$ $>$@{KBLIB\_NS::FNV\_hash$<$ T, HashInt, void\_if\_t$<$(std::is\_base\_of$<$ std::forward\_iterator\_tag, typename std::iterator\_traits$<$ T $>$::iterator\_category $>$::value and not std::is\_pointer$<$ T $>$::value and not is\_trivially\_hashable\_v$<$ T $>$ and std::is\_pointer$<$ typename fakestd::invoke\_result$<$ decltype(\&T::operator-\/$>$), T $>$::type $>$::value)$>$ $>$}} \doxysubsubsection{\texorpdfstring{operator()()}{operator()()}} {\footnotesize\ttfamily template$<$typename T , typename Hash\+Int $>$ \\ auto \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1_f_n_v__hash}{KBLIB\+\_\+\+NS\+::\+FNV\+\_\+hash}}$<$ T, Hash\+Int, \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_a0091fb16bc1767a3e5e1cff5aa8dff53}{void\+\_\+if\+\_\+t}}$<$(std\+::is\+\_\+base\+\_\+of$<$ std\+::forward\+\_\+iterator\+\_\+tag, typename std\+::iterator\+\_\+traits$<$ T $>$\+::iterator\+\_\+category $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and not \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_ab285613a76758ad7a7693b5562101634}{is\+\_\+trivially\+\_\+hashable\+\_\+v}}$<$ T $>$ and std\+::is\+\_\+pointer$<$ typename \mbox{\hyperlink{struct_k_b_l_i_b___n_s_1_1fakestd_1_1invoke__result}{fakestd\+::invoke\+\_\+result}}$<$ decltype(\&T\+::operator-\/$>$), T $>$\+::type $>$\+::value)$>$ $>$\+::operator() (\begin{DoxyParamCaption}\item[{T}]{key\+\_\+in, }\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 [noexcept]}} Definition at line \mbox{\hyperlink{hash_8h_source_l00490}{490}} 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}