\hypertarget{structkblib_1_1_f_n_v__hash_3_01_t_00_01void__if__t_3_01not_01is__contiguous_3_01_t_01_4_1_1valuceab428ab143a4a908936dfb1ece418a}{}\section{kblib\+:\+:F\+N\+V\+\_\+hash$<$ T, void\+\_\+if\+\_\+t$<$ not is\+\_\+contiguous$<$ T $>$\+:\+:value and not std\+:\+:is\+\_\+integral$<$ T $>$\+:\+:value and not std\+:\+:is\+\_\+pointer$<$ T $>$\+:\+:value and is\+\_\+trivially\+\_\+hashable$<$ T $>$\+:\+:value $>$ $>$ Struct Template Reference} \label{structkblib_1_1_f_n_v__hash_3_01_t_00_01void__if__t_3_01not_01is__contiguous_3_01_t_01_4_1_1valuceab428ab143a4a908936dfb1ece418a}\index{kblib\+::\+F\+N\+V\+\_\+hash$<$ T, void\+\_\+if\+\_\+t$<$ not is\+\_\+contiguous$<$ T $>$\+::value and not std\+::is\+\_\+integral$<$ T $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ T $>$\+::value $>$ $>$@{kblib\+::\+F\+N\+V\+\_\+hash$<$ T, void\+\_\+if\+\_\+t$<$ not is\+\_\+contiguous$<$ T $>$\+::value and not std\+::is\+\_\+integral$<$ T $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ T $>$\+::value $>$ $>$}} Hasher for any non-\/integral trivially copyable type that has no padding. {\ttfamily \#include $<$kblib/hash.\+h$>$} \subsection*{Public Member Functions} \begin{DoxyCompactItemize} \item std\+::size\+\_\+t \hyperlink{structkblib_1_1_f_n_v__hash_3_01_t_00_01void__if__t_3_01not_01is__contiguous_3_01_t_01_4_1_1valuceab428ab143a4a908936dfb1ece418a_ad911b1e1dde499a277d01139ecddb893}{operator()} (T 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 T$>$\newline struct kblib\+::\+F\+N\+V\+\_\+hash$<$ T, void\+\_\+if\+\_\+t$<$ not is\+\_\+contiguous$<$ T $>$\+::value and not std\+::is\+\_\+integral$<$ T $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ T $>$\+::value $>$ $>$} Hasher for any non-\/integral trivially copyable type that has no padding. \begin{DoxyNote}{Note} Unfortunately, this specialization cannot be constexpr until C++20 brings std\+::bit\+\_\+cast. \end{DoxyNote} Definition at line 535 of file hash.\+h. \subsection{Member Function Documentation} \mbox{\Hypertarget{structkblib_1_1_f_n_v__hash_3_01_t_00_01void__if__t_3_01not_01is__contiguous_3_01_t_01_4_1_1valuceab428ab143a4a908936dfb1ece418a_ad911b1e1dde499a277d01139ecddb893}\label{structkblib_1_1_f_n_v__hash_3_01_t_00_01void__if__t_3_01not_01is__contiguous_3_01_t_01_4_1_1valuceab428ab143a4a908936dfb1ece418a_ad911b1e1dde499a277d01139ecddb893}} \index{kblib\+::\+F\+N\+V\+\_\+hash$<$ T, void\+\_\+if\+\_\+t$<$ not is\+\_\+contiguous$<$ T $>$\+::value and not std\+::is\+\_\+integral$<$ T $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ T $>$\+::value $>$ $>$@{kblib\+::\+F\+N\+V\+\_\+hash$<$ T, void\+\_\+if\+\_\+t$<$ not is\+\_\+contiguous$<$ T $>$\+::value and not std\+::is\+\_\+integral$<$ T $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ T $>$\+::value $>$ $>$}!operator()@{operator()}} \index{operator()@{operator()}!kblib\+::\+F\+N\+V\+\_\+hash$<$ T, void\+\_\+if\+\_\+t$<$ not is\+\_\+contiguous$<$ T $>$\+::value and not std\+::is\+\_\+integral$<$ T $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ T $>$\+::value $>$ $>$@{kblib\+::\+F\+N\+V\+\_\+hash$<$ T, void\+\_\+if\+\_\+t$<$ not is\+\_\+contiguous$<$ T $>$\+::value and not std\+::is\+\_\+integral$<$ T $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and is\+\_\+trivially\+\_\+hashable$<$ T $>$\+::value $>$ $>$}} \subsubsection{\texorpdfstring{operator()()}{operator()()}} {\footnotesize\ttfamily template$<$typename T $>$ \\ std\+::size\+\_\+t \hyperlink{structkblib_1_1_f_n_v__hash}{kblib\+::\+F\+N\+V\+\_\+hash}$<$ T, \hyperlink{namespacekblib_ab3cc24416f0b9a6504e1c6a437ed6230}{void\+\_\+if\+\_\+t}$<$ not \hyperlink{structkblib_1_1is__contiguous}{is\+\_\+contiguous}$<$ T $>$\+::value and not std\+::is\+\_\+integral$<$ T $>$\+::value and not std\+::is\+\_\+pointer$<$ T $>$\+::value and \hyperlink{structkblib_1_1is__trivially__hashable}{is\+\_\+trivially\+\_\+hashable}$<$ T $>$\+::value $>$ $>$\+::operator() (\begin{DoxyParamCaption}\item[{T}]{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 540 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}