\hypertarget{structkblib_1_1_f_n_v__hash_3_01_t_00_01void__if__t_3_01not_01std_1_1is__integral_3_01_t_01_4_1_cce179c08fe362eae0af5cd78eec6065}{}\section{kblib\+:\+:F\+N\+V\+\_\+hash$<$ T, void\+\_\+if\+\_\+t$<$ 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_01std_1_1is__integral_3_01_t_01_4_1_cce179c08fe362eae0af5cd78eec6065}\index{kblib\+::\+F\+N\+V\+\_\+hash$<$ T, void\+\_\+if\+\_\+t$<$ 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 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 $<$hash.\+h$>$} \subsection{Detailed Description} \subsubsection*{template$<$typename T$>$\newline struct kblib\+::\+F\+N\+V\+\_\+hash$<$ T, void\+\_\+if\+\_\+t$<$ 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 501 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}