\hypertarget{structkblib_1_1_f_n_v__hash_3_01_container_00_01void__if__t_3_01value__detected_3_01_container_056bd2137e7a175a8c1b3ca4e6b06495a}{}\section{kblib\+:\+:F\+N\+V\+\_\+hash$<$ Container, void\+\_\+if\+\_\+t$<$ value\+\_\+detected$<$ Container $>$\+:\+:value and is\+\_\+hashable$<$ value\+\_\+detected\+\_\+t$<$ Container $>$ $>$\+:\+:value and not hash\+\_\+detected$<$ Container $>$\+:\+:value and is\+\_\+iterable$<$ Container $>$\+:\+:value and not(is\+\_\+contiguous$<$ Container $>$\+:\+:value and is\+\_\+trivially\+\_\+hashable$<$ typename Container\+:\+:value\+\_\+type $>$\+:\+:value) and not is\+\_\+iterator\+\_\+v$<$ Container $>$ $>$ $>$ Struct Template Reference} \label{structkblib_1_1_f_n_v__hash_3_01_container_00_01void__if__t_3_01value__detected_3_01_container_056bd2137e7a175a8c1b3ca4e6b06495a}\index{kblib\+::\+F\+N\+V\+\_\+hash$<$ Container, void\+\_\+if\+\_\+t$<$ value\+\_\+detected$<$ Container $>$\+::value and is\+\_\+hashable$<$ value\+\_\+detected\+\_\+t$<$ Container $>$ $>$\+::value and not hash\+\_\+detected$<$ Container $>$\+::value and is\+\_\+iterable$<$ Container $>$\+::value and not(is\+\_\+contiguous$<$ Container $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ typename Container\+::value\+\_\+type $>$\+::value) and not is\+\_\+iterator\+\_\+v$<$ Container $>$ $>$ $>$@{kblib\+::\+F\+N\+V\+\_\+hash$<$ Container, void\+\_\+if\+\_\+t$<$ value\+\_\+detected$<$ Container $>$\+::value and is\+\_\+hashable$<$ value\+\_\+detected\+\_\+t$<$ Container $>$ $>$\+::value and not hash\+\_\+detected$<$ Container $>$\+::value and is\+\_\+iterable$<$ Container $>$\+::value and not(is\+\_\+contiguous$<$ Container $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ typename Container\+::value\+\_\+type $>$\+::value) and not is\+\_\+iterator\+\_\+v$<$ Container $>$ $>$ $>$}} Container hasher, for non-\/trivial elements (or non-\/contiguous storage) {\ttfamily \#include $<$kblib/hash.\+h$>$} \subsection*{Public Member Functions} \begin{DoxyCompactItemize} \item constexpr std\+::size\+\_\+t \hyperlink{structkblib_1_1_f_n_v__hash_3_01_container_00_01void__if__t_3_01value__detected_3_01_container_056bd2137e7a175a8c1b3ca4e6b06495a_ab06352eb2e9dca897f20e787a662d05e}{operator()} (const Container \&key, std\+::size\+\_\+t offset=\hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}$<$ std\+::size\+\_\+t $>$\+::value) const noexcept \end{DoxyCompactItemize} \subsection{Detailed Description} \subsubsection*{template$<$typename Container$>$\newline struct kblib\+::\+F\+N\+V\+\_\+hash$<$ Container, void\+\_\+if\+\_\+t$<$ value\+\_\+detected$<$ Container $>$\+::value and is\+\_\+hashable$<$ value\+\_\+detected\+\_\+t$<$ Container $>$ $>$\+::value and not hash\+\_\+detected$<$ Container $>$\+::value and is\+\_\+iterable$<$ Container $>$\+::value and not(is\+\_\+contiguous$<$ Container $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ typename Container\+::value\+\_\+type $>$\+::value) and not is\+\_\+iterator\+\_\+v$<$ Container $>$ $>$ $>$} Container hasher, for non-\/trivial elements (or non-\/contiguous storage) Definition at line 553 of file hash.\+h. \subsection{Member Function Documentation} \mbox{\Hypertarget{structkblib_1_1_f_n_v__hash_3_01_container_00_01void__if__t_3_01value__detected_3_01_container_056bd2137e7a175a8c1b3ca4e6b06495a_ab06352eb2e9dca897f20e787a662d05e}\label{structkblib_1_1_f_n_v__hash_3_01_container_00_01void__if__t_3_01value__detected_3_01_container_056bd2137e7a175a8c1b3ca4e6b06495a_ab06352eb2e9dca897f20e787a662d05e}} \index{kblib\+::\+F\+N\+V\+\_\+hash$<$ Container, void\+\_\+if\+\_\+t$<$ value\+\_\+detected$<$ Container $>$\+::value and is\+\_\+hashable$<$ value\+\_\+detected\+\_\+t$<$ Container $>$ $>$\+::value and not hash\+\_\+detected$<$ Container $>$\+::value and is\+\_\+iterable$<$ Container $>$\+::value and not(is\+\_\+contiguous$<$ Container $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ typename Container\+::value\+\_\+type $>$\+::value) and not is\+\_\+iterator\+\_\+v$<$ Container $>$ $>$ $>$@{kblib\+::\+F\+N\+V\+\_\+hash$<$ Container, void\+\_\+if\+\_\+t$<$ value\+\_\+detected$<$ Container $>$\+::value and is\+\_\+hashable$<$ value\+\_\+detected\+\_\+t$<$ Container $>$ $>$\+::value and not hash\+\_\+detected$<$ Container $>$\+::value and is\+\_\+iterable$<$ Container $>$\+::value and not(is\+\_\+contiguous$<$ Container $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ typename Container\+::value\+\_\+type $>$\+::value) and not is\+\_\+iterator\+\_\+v$<$ Container $>$ $>$ $>$}!operator()@{operator()}} \index{operator()@{operator()}!kblib\+::\+F\+N\+V\+\_\+hash$<$ Container, void\+\_\+if\+\_\+t$<$ value\+\_\+detected$<$ Container $>$\+::value and is\+\_\+hashable$<$ value\+\_\+detected\+\_\+t$<$ Container $>$ $>$\+::value and not hash\+\_\+detected$<$ Container $>$\+::value and is\+\_\+iterable$<$ Container $>$\+::value and not(is\+\_\+contiguous$<$ Container $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ typename Container\+::value\+\_\+type $>$\+::value) and not is\+\_\+iterator\+\_\+v$<$ Container $>$ $>$ $>$@{kblib\+::\+F\+N\+V\+\_\+hash$<$ Container, void\+\_\+if\+\_\+t$<$ value\+\_\+detected$<$ Container $>$\+::value and is\+\_\+hashable$<$ value\+\_\+detected\+\_\+t$<$ Container $>$ $>$\+::value and not hash\+\_\+detected$<$ Container $>$\+::value and is\+\_\+iterable$<$ Container $>$\+::value and not(is\+\_\+contiguous$<$ Container $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ typename Container\+::value\+\_\+type $>$\+::value) and not is\+\_\+iterator\+\_\+v$<$ Container $>$ $>$ $>$}} \subsubsection{\texorpdfstring{operator()()}{operator()()}} {\footnotesize\ttfamily template$<$typename Container $>$ \\ constexpr std\+::size\+\_\+t \hyperlink{structkblib_1_1_f_n_v__hash}{kblib\+::\+F\+N\+V\+\_\+hash}$<$ Container, \hyperlink{namespacekblib_ab3cc24416f0b9a6504e1c6a437ed6230}{void\+\_\+if\+\_\+t}$<$ \hyperlink{structkblib_1_1value__detected}{value\+\_\+detected}$<$ Container $>$\+::value and \hyperlink{structkblib_1_1is__hashable}{is\+\_\+hashable}$<$ \hyperlink{namespacekblib_aa0f56c295f64726c092c84a77f025a85}{value\+\_\+detected\+\_\+t}$<$ Container $>$ $>$\+::value and not \hyperlink{structkblib_1_1hash__detected}{hash\+\_\+detected}$<$ Container $>$\+::value and \hyperlink{structkblib_1_1is__iterable}{is\+\_\+iterable}$<$ Container $>$\+::value and not(\hyperlink{structkblib_1_1is__contiguous}{is\+\_\+contiguous}$<$ Container $>$\+::value and \hyperlink{structkblib_1_1is__trivially__hashable}{is\+\_\+trivially\+\_\+hashable}$<$ typename Container\+::value\+\_\+type $>$\+::value) and not \hyperlink{namespacekblib_a5d850dd9f5a670892abb6f97a076077c}{is\+\_\+iterator\+\_\+v}$<$ Container $>$ $>$ $>$\+::operator() (\begin{DoxyParamCaption}\item[{const Container \&}]{key, }\item[{std\+::size\+\_\+t}]{offset = {\ttfamily \hyperlink{structkblib_1_1fnv_1_1fnv__offset}{fnv\+::fnv\+\_\+offset}$<$std\+:\+:size\+\_\+t$>$\+:\+:value} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [noexcept]}} Definition at line 563 of file hash.\+h. The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize} \item kblib/\hyperlink{hash_8h}{hash.\+h}\end{DoxyCompactItemize}