\hypertarget{namespacekblib_1_1detail__hash}{}\doxysection{kblib\+::detail\+\_\+hash Namespace Reference} \label{namespacekblib_1_1detail__hash}\index{kblib::detail\_hash@{kblib::detail\_hash}} \doxysubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename Tuple , typename Hash\+Int , std\+::size\+\_\+t I$>$ }\\constexpr auto \mbox{\hyperlink{namespacekblib_1_1detail__hash_a138386fc0ca979aa8b320aebcf80e481}{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{namespacekblib_1_1detail__hash_af4f4d879d7d510def38b6d60cc74c7ec}{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{namespacekblib_1_1detail__hash_a2e06c1df56bfe905c83f2eeb55fe7cdd}{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{namespacekblib_1_1detail__hash_adc7fa44ca103cd16a233a5c3a006a3a9}{all\+\_\+hashable}} () -\/$>$ bool \end{DoxyCompactItemize} \doxysubsection{Function Documentation} \mbox{\Hypertarget{namespacekblib_1_1detail__hash_adc7fa44ca103cd16a233a5c3a006a3a9}\label{namespacekblib_1_1detail__hash_adc7fa44ca103cd16a233a5c3a006a3a9}} \index{kblib::detail\_hash@{kblib::detail\_hash}!all\_hashable@{all\_hashable}} \index{all\_hashable@{all\_hashable}!kblib::detail\_hash@{kblib::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\+::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{namespacekblib_1_1detail__hash_a2e06c1df56bfe905c83f2eeb55fe7cdd}\label{namespacekblib_1_1detail__hash_a2e06c1df56bfe905c83f2eeb55fe7cdd}} \index{kblib::detail\_hash@{kblib::detail\_hash}!all\_hashable\_impl@{all\_hashable\_impl}} \index{all\_hashable\_impl@{all\_hashable\_impl}!kblib::detail\_hash@{kblib::detail\_hash}} \doxysubsubsection{\texorpdfstring{all\_hashable\_impl()}{all\_hashable\_impl()}} {\footnotesize\ttfamily template$<$typename Tuple , std\+::size\+\_\+t... Is$>$ \\ constexpr auto kblib\+::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{namespacekblib_1_1detail__hash_a138386fc0ca979aa8b320aebcf80e481}\label{namespacekblib_1_1detail__hash_a138386fc0ca979aa8b320aebcf80e481}} \index{kblib::detail\_hash@{kblib::detail\_hash}!hash\_tuple\_impl@{hash\_tuple\_impl}} \index{hash\_tuple\_impl@{hash\_tuple\_impl}!kblib::detail\_hash@{kblib::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\+::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{namespacekblib_1_1detail__hash_af4f4d879d7d510def38b6d60cc74c7ec}\label{namespacekblib_1_1detail__hash_af4f4d879d7d510def38b6d60cc74c7ec}} \index{kblib::detail\_hash@{kblib::detail\_hash}!hash\_tuple\_impl@{hash\_tuple\_impl}} \index{hash\_tuple\_impl@{hash\_tuple\_impl}!kblib::detail\_hash@{kblib::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\+::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}}.