\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}
