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