\doxysection{Include/\+Utility/\+Template\+Utils.h File Reference} \hypertarget{_template_utils_8h}{}\label{_template_utils_8h}\index{Include/Utility/TemplateUtils.h@{Include/Utility/TemplateUtils.h}} Provides compile time evaluation utilities for templates and template packs. \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{struct_constant_value}{Constant\+Value$<$ T, V $>$}} \begin{DoxyCompactList}\small\item\em Compile-\/time constant value. \end{DoxyCompactList}\item struct \mbox{\hyperlink{struct_get_pack_element}{Get\+Pack\+Element$<$ I, T, Ts $>$}} \end{DoxyCompactItemize} \doxysubsubsection*{Typedefs} \begin{DoxyCompactItemize} \item {\footnotesize template$<$bool V$>$ }\\using \mbox{\hyperlink{_template_utils_8h_a4ec4c561f8a620b1a281b243abb77390}{Bool\+Constant}} = \mbox{\hyperlink{struct_constant_value}{Constant\+Value}}$<$bool, V$>$ \begin{DoxyCompactList}\small\item\em Compile-\/time constant boolean value. \end{DoxyCompactList}\item \Hypertarget{_template_utils_8h_adeed5746027088c5ee9ce594b2dc5f97}\label{_template_utils_8h_adeed5746027088c5ee9ce594b2dc5f97} using {\bfseries True\+Type} = \mbox{\hyperlink{_template_utils_8h_a4ec4c561f8a620b1a281b243abb77390}{Bool\+Constant}}$<$true$>$ \begin{DoxyCompactList}\small\item\em Constant True Value. \end{DoxyCompactList}\item \Hypertarget{_template_utils_8h_a5d03e0d64b76930405274da5a45e8c24}\label{_template_utils_8h_a5d03e0d64b76930405274da5a45e8c24} using {\bfseries False\+Type} = \mbox{\hyperlink{_template_utils_8h_a4ec4c561f8a620b1a281b243abb77390}{Bool\+Constant}}$<$false$>$ \begin{DoxyCompactList}\small\item\em Constant False Value. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Variables} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename T , typename... Ts$>$ }\\constexpr bool \mbox{\hyperlink{_template_utils_8h_a41b103eb68d30e57aeca48ed2c66e162}{Is\+Unique$<$ T, Ts... $>$}} = \mbox{\hyperlink{_template_utils_8h_a4ec4c561f8a620b1a281b243abb77390}{Bool\+Constant}}$<$(!Is\+Same$<$T, Ts$>$ \&\& ...) \&\& Is\+Unique$<$Ts...$>$$>$\{\} \begin{DoxyCompactList}\small\item\em Check if all types in a template pack are unique. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Detailed Description} Provides compile time evaluation utilities for templates and template packs. \doxysubsection{Typedef Documentation} \Hypertarget{_template_utils_8h_a4ec4c561f8a620b1a281b243abb77390}\index{TemplateUtils.h@{TemplateUtils.h}!BoolConstant@{BoolConstant}} \index{BoolConstant@{BoolConstant}!TemplateUtils.h@{TemplateUtils.h}} \doxysubsubsection{\texorpdfstring{BoolConstant}{BoolConstant}} {\footnotesize\ttfamily \label{_template_utils_8h_a4ec4c561f8a620b1a281b243abb77390} template$<$bool V$>$ \\ using \mbox{\hyperlink{_template_utils_8h_a4ec4c561f8a620b1a281b243abb77390}{Bool\+Constant}} = \mbox{\hyperlink{struct_constant_value}{Constant\+Value}}$<$bool, V$>$} Compile-\/time constant boolean value. \begin{DoxyTemplParams}{Template Parameters} {\em V} & Value \\ \hline \end{DoxyTemplParams} \doxysubsection{Variable Documentation} \Hypertarget{_template_utils_8h_a41b103eb68d30e57aeca48ed2c66e162}\index{TemplateUtils.h@{TemplateUtils.h}!IsUnique$<$ T, Ts... $>$@{IsUnique$<$ T, Ts... $>$}} \index{IsUnique$<$ T, Ts... $>$@{IsUnique$<$ T, Ts... $>$}!TemplateUtils.h@{TemplateUtils.h}} \doxysubsubsection{\texorpdfstring{IsUnique$<$ T, Ts... $>$}{IsUnique< T, Ts... >}} {\footnotesize\ttfamily \label{_template_utils_8h_a41b103eb68d30e57aeca48ed2c66e162} template$<$typename T , typename... Ts$>$ \\ bool Is\+Unique$<$ T, Ts... $>$ = \mbox{\hyperlink{_template_utils_8h_a4ec4c561f8a620b1a281b243abb77390}{Bool\+Constant}}$<$(!Is\+Same$<$T, Ts$>$ \&\& ...) \&\& Is\+Unique$<$Ts...$>$$>$\{\}\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [constexpr]}} Check if all types in a template pack are unique. \begin{DoxyTemplParams}{Template Parameters} {\em T} & First element of template pack \\ \hline {\em Ts} & Rest of the template pack \\ \hline \end{DoxyTemplParams}