\hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__hash}{}\doxysection{KBLIB\+\_\+\+NS\+::detail\+\_\+hash Namespace Reference}
\label{namespace_k_b_l_i_b___n_s_1_1detail__hash}\index{KBLIB\_NS::detail\_hash@{KBLIB\_NS::detail\_hash}}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Tuple , typename Hash\+Int , std\+::size\+\_\+t I$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__hash_ae32a4c6097d29490565c8af917ef5cad}{hash\+\_\+tuple\+\_\+impl}} (const Tuple \&tuple, Hash\+Int offset, std\+::index\+\_\+sequence$<$ I $>$) noexcept -\/$>$ Hash\+Int
\begin{DoxyCompactList}\small\item\em Hash each element of a tuple. This overload is for tuples of a single type, or as the base case for the other overload. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Tuple , typename Hash\+Int , std\+::size\+\_\+t I, std\+::size\+\_\+t I2, std\+::size\+\_\+t... Is$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__hash_a9638776e9581be8712aa1284052c728e}{hash\+\_\+tuple\+\_\+impl}} (const Tuple \&tuple, Hash\+Int offset, std\+::index\+\_\+sequence$<$ I, I2, Is... $>$) noexcept -\/$>$ Hash\+Int
\begin{DoxyCompactList}\small\item\em Hash each element of a tuple. This overload is for tuples of at least 2 elements. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Tuple , std\+::size\+\_\+t... Is$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__hash_a0bed93245d37d323dfe581ac1f067a03}{all\+\_\+hashable\+\_\+impl}} (std\+::index\+\_\+sequence$<$ Is... $>$) -\/$>$ bool
\item 
{\footnotesize template$<$typename Tuple , typename std\+::enable\+\_\+if$<$(std\+::tuple\+\_\+size$<$ Tuple $>$\+::value $>$ 0u), int $>$\+::type  = 0$>$ }\\constexpr auto \mbox{\hyperlink{namespace_k_b_l_i_b___n_s_1_1detail__hash_a3f6882f549affdefdf94f04a8e1f14d3}{all\+\_\+hashable}} () -\/$>$ bool
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__hash_a3f6882f549affdefdf94f04a8e1f14d3}\label{namespace_k_b_l_i_b___n_s_1_1detail__hash_a3f6882f549affdefdf94f04a8e1f14d3}} 
\index{KBLIB\_NS::detail\_hash@{KBLIB\_NS::detail\_hash}!all\_hashable@{all\_hashable}}
\index{all\_hashable@{all\_hashable}!KBLIB\_NS::detail\_hash@{KBLIB\_NS::detail\_hash}}
\doxysubsubsection{\texorpdfstring{all\_hashable()}{all\_hashable()}}
{\footnotesize\ttfamily template$<$typename Tuple , typename std\+::enable\+\_\+if$<$(std\+::tuple\+\_\+size$<$ Tuple $>$\+::value $>$ 0u), int $>$\+::type  = 0$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+\_\+hash\+::all\+\_\+hashable (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{hash_8h_source_l00683}{683}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__hash_a0bed93245d37d323dfe581ac1f067a03}\label{namespace_k_b_l_i_b___n_s_1_1detail__hash_a0bed93245d37d323dfe581ac1f067a03}} 
\index{KBLIB\_NS::detail\_hash@{KBLIB\_NS::detail\_hash}!all\_hashable\_impl@{all\_hashable\_impl}}
\index{all\_hashable\_impl@{all\_hashable\_impl}!KBLIB\_NS::detail\_hash@{KBLIB\_NS::detail\_hash}}
\doxysubsubsection{\texorpdfstring{all\_hashable\_impl()}{all\_hashable\_impl()}}
{\footnotesize\ttfamily template$<$typename Tuple , std\+::size\+\_\+t... Is$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+\_\+hash\+::all\+\_\+hashable\+\_\+impl (\begin{DoxyParamCaption}\item[{std\+::index\+\_\+sequence$<$ Is... $>$}]{ }\end{DoxyParamCaption}) -\/$>$ bool \hspace{0.3cm}{\ttfamily [constexpr]}}



Definition at line \mbox{\hyperlink{hash_8h_source_l00651}{651}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__hash_ae32a4c6097d29490565c8af917ef5cad}\label{namespace_k_b_l_i_b___n_s_1_1detail__hash_ae32a4c6097d29490565c8af917ef5cad}} 
\index{KBLIB\_NS::detail\_hash@{KBLIB\_NS::detail\_hash}!hash\_tuple\_impl@{hash\_tuple\_impl}}
\index{hash\_tuple\_impl@{hash\_tuple\_impl}!KBLIB\_NS::detail\_hash@{KBLIB\_NS::detail\_hash}}
\doxysubsubsection{\texorpdfstring{hash\_tuple\_impl()}{hash\_tuple\_impl()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename Tuple , typename Hash\+Int , std\+::size\+\_\+t I$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+\_\+hash\+::hash\+\_\+tuple\+\_\+impl (\begin{DoxyParamCaption}\item[{const Tuple \&}]{tuple,  }\item[{Hash\+Int}]{offset,  }\item[{std\+::index\+\_\+sequence$<$ I $>$}]{ }\end{DoxyParamCaption}) -\/$>$ Hash\+Int \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Hash each element of a tuple. This overload is for tuples of a single type, or as the base case for the other overload. 


\begin{DoxyParams}{Parameters}
{\em tuple} & \\
\hline
{\em offset} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Hash\+Int 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{hash_8h_source_l00623}{623}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

\mbox{\Hypertarget{namespace_k_b_l_i_b___n_s_1_1detail__hash_a9638776e9581be8712aa1284052c728e}\label{namespace_k_b_l_i_b___n_s_1_1detail__hash_a9638776e9581be8712aa1284052c728e}} 
\index{KBLIB\_NS::detail\_hash@{KBLIB\_NS::detail\_hash}!hash\_tuple\_impl@{hash\_tuple\_impl}}
\index{hash\_tuple\_impl@{hash\_tuple\_impl}!KBLIB\_NS::detail\_hash@{KBLIB\_NS::detail\_hash}}
\doxysubsubsection{\texorpdfstring{hash\_tuple\_impl()}{hash\_tuple\_impl()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename Tuple , typename Hash\+Int , std\+::size\+\_\+t I, std\+::size\+\_\+t I2, std\+::size\+\_\+t... Is$>$ \\
constexpr auto KBLIB\+\_\+\+NS\+::detail\+\_\+hash\+::hash\+\_\+tuple\+\_\+impl (\begin{DoxyParamCaption}\item[{const Tuple \&}]{tuple,  }\item[{Hash\+Int}]{offset,  }\item[{std\+::index\+\_\+sequence$<$ I, I2, Is... $>$}]{ }\end{DoxyParamCaption}) -\/$>$ Hash\+Int \hspace{0.3cm}{\ttfamily [constexpr]}, {\ttfamily [noexcept]}}



Hash each element of a tuple. This overload is for tuples of at least 2 elements. 


\begin{DoxyParams}{Parameters}
{\em tuple} & \\
\hline
{\em offset} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Hash\+Int 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{hash_8h_source_l00639}{639}} of file \mbox{\hyperlink{hash_8h_source}{hash.\+h}}.

