\hypertarget{group__type}{}\section{selection}
\label{group__type}\index{selection@{selection}}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \mbox{\hyperlink{namespaceutl}{utl}}
\begin{DoxyCompactList}\small\item\em S\+TL\textquotesingle{}s core language concepts. \end{DoxyCompactList}\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1detail}{utl\+::meta\+::detail}}
\end{DoxyCompactItemize}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1detail_1_1if__c__}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+$<$ If,... $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1detail_1_1if__c___3_01true_00_01_then_01_4}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+$<$ true, Then $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1detail_1_1if__c___3_01true_00_01_then_00_01_else_01_4}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+$<$ true, Then, Else $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1detail_1_1if__c___3_01false_00_01_then_00_01_else_01_4}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+$<$ false, Then, Else $>$}}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
using \mbox{\hyperlink{group__type_gaefeff9de7bff8811e49692343ce6187e}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+$<$ If,... $>$\+::type}} = \mbox{\hyperlink{structutl_1_1meta_1_1nil__}{nil\+\_\+}}
\begin{DoxyCompactList}\small\item\em avoid ill formed result \end{DoxyCompactList}\item 
using \mbox{\hyperlink{group__type_gaa7f24607990e92d8263246fc5f7003b7}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+$<$ true, Then $>$\+::type}} = Then
\item 
using \mbox{\hyperlink{group__type_ga15100ac40785819517c5defacb19915c}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+$<$ true, Then, Else $>$\+::type}} = Then
\item 
using \mbox{\hyperlink{group__type_ga2fbed149992c081ac85eefaf63a388ca}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+$<$ false, Then, Else $>$\+::type}} = Else
\end{DoxyCompactItemize}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$bool B, typename... Args$>$ }\\using \mbox{\hyperlink{group__type_gaa3812817ce749832da73fdf5d2a85380}{utl\+::meta\+::if\+\_\+c}} = \mbox{\hyperlink{namespaceutl_1_1meta_aa5a37adba244ff4286f994111c4c02ea}{eval}}$<$ \mbox{\hyperlink{structutl_1_1meta_1_1detail_1_1if__c__}{detail\+::if\+\_\+c\+\_\+}}$<$ B, Args... $>$ $>$
\begin{DoxyCompactList}\small\item\em Select one type or another depending on a compile-\/time Boolean. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename If , typename... Args$>$ }\\using \mbox{\hyperlink{group__type_ga39cc4e727a8faa5ea176f543e62c05c0}{utl\+::meta\+::if\+\_\+}} = \mbox{\hyperlink{group__type_gaa3812817ce749832da73fdf5d2a85380}{if\+\_\+c}}$<$ If\+::type\+::value, Args... $>$
\begin{DoxyCompactList}\small\item\em Select one type or another depending on a compile-\/time Boolean type. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename T1 , typename ... $>$ }\\using \mbox{\hyperlink{group__type_gaf7089523d21cd405c76985643f31092a}{utl\+::meta\+::first\+\_\+of}} = T1
\begin{DoxyCompactList}\small\item\em Select the first type of a type sequence. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T1 , typename T2 , typename ... $>$ }\\using \mbox{\hyperlink{group__type_ga422dd1b0895f0074ad9932d68d9edbc5}{utl\+::meta\+::second\+\_\+of}} = T2
\begin{DoxyCompactList}\small\item\em Select the second type of a type sequence. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Type selection support header 

\subsection{Typedef Documentation}
\mbox{\Hypertarget{group__type_gaf7089523d21cd405c76985643f31092a}\label{group__type_gaf7089523d21cd405c76985643f31092a}} 
\index{selection@{selection}!first\+\_\+of@{first\+\_\+of}}
\index{first\+\_\+of@{first\+\_\+of}!selection@{selection}}
\subsubsection{\texorpdfstring{first\+\_\+of}{first\_of}}
{\footnotesize\ttfamily template$<$typename T1 , typename ... $>$ \\
using \mbox{\hyperlink{group__type_gaf7089523d21cd405c76985643f31092a}{utl\+::meta\+::first\+\_\+of}} = typedef T1}



Select the first type of a type sequence. 

Named type selectors \begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{_w_1_2_work_2_software_2_libraries_2utl_2include_2utl_2meta_2invoke_8h-example}{W\+:/\+Work/\+Software/\+Libraries/utl/include/utl/meta/invoke.\+h}}.\end{Desc}


Definition at line 76 of file selection.\+h.

\mbox{\Hypertarget{group__type_ga39cc4e727a8faa5ea176f543e62c05c0}\label{group__type_ga39cc4e727a8faa5ea176f543e62c05c0}} 
\index{selection@{selection}!if\+\_\+@{if\+\_\+}}
\index{if\+\_\+@{if\+\_\+}!selection@{selection}}
\subsubsection{\texorpdfstring{if\+\_\+}{if\_}}
{\footnotesize\ttfamily template$<$typename If , typename... Args$>$ \\
using \mbox{\hyperlink{group__type_ga39cc4e727a8faa5ea176f543e62c05c0}{utl\+::meta\+::if\+\_\+}} = typedef \mbox{\hyperlink{group__type_gaa3812817ce749832da73fdf5d2a85380}{if\+\_\+c}}$<$If\+::type\+::value, Args...$>$}



Select one type or another depending on a compile-\/time Boolean type. 

\begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{_w_1_2_work_2_software_2_libraries_2utl_2include_2utl_2meta_2invoke_8h-example}{W\+:/\+Work/\+Software/\+Libraries/utl/include/utl/meta/invoke.\+h}}, and \mbox{\hyperlink{_w_1_2_work_2_software_2_libraries_2utl_2include_2utl_2meta_2typelist_8h-example}{W\+:/\+Work/\+Software/\+Libraries/utl/include/utl/meta/typelist.\+h}}.\end{Desc}


Definition at line 66 of file selection.\+h.

\mbox{\Hypertarget{group__type_gaa3812817ce749832da73fdf5d2a85380}\label{group__type_gaa3812817ce749832da73fdf5d2a85380}} 
\index{selection@{selection}!if\+\_\+c@{if\+\_\+c}}
\index{if\+\_\+c@{if\+\_\+c}!selection@{selection}}
\subsubsection{\texorpdfstring{if\+\_\+c}{if\_c}}
{\footnotesize\ttfamily template$<$bool B, typename... Args$>$ \\
using \mbox{\hyperlink{group__type_gaa3812817ce749832da73fdf5d2a85380}{utl\+::meta\+::if\+\_\+c}} = typedef \mbox{\hyperlink{namespaceutl_1_1meta_aa5a37adba244ff4286f994111c4c02ea}{eval}}$<$\mbox{\hyperlink{structutl_1_1meta_1_1detail_1_1if__c__}{detail\+::if\+\_\+c\+\_\+}}$<$B, Args...$>$ $>$}



Select one type or another depending on a compile-\/time Boolean. 



Definition at line 62 of file selection.\+h.

\mbox{\Hypertarget{group__type_ga422dd1b0895f0074ad9932d68d9edbc5}\label{group__type_ga422dd1b0895f0074ad9932d68d9edbc5}} 
\index{selection@{selection}!second\+\_\+of@{second\+\_\+of}}
\index{second\+\_\+of@{second\+\_\+of}!selection@{selection}}
\subsubsection{\texorpdfstring{second\+\_\+of}{second\_of}}
{\footnotesize\ttfamily template$<$typename T1 , typename T2 , typename ... $>$ \\
using \mbox{\hyperlink{group__type_ga422dd1b0895f0074ad9932d68d9edbc5}{utl\+::meta\+::second\+\_\+of}} = typedef T2}



Select the second type of a type sequence. 



Definition at line 79 of file selection.\+h.

\mbox{\Hypertarget{group__type_gaefeff9de7bff8811e49692343ce6187e}\label{group__type_gaefeff9de7bff8811e49692343ce6187e}} 
\index{selection@{selection}!type@{type}}
\index{type@{type}!selection@{selection}}
\subsubsection{\texorpdfstring{type}{type}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$bool If, typename... $>$ \\
using \mbox{\hyperlink{structutl_1_1meta_1_1detail_1_1if__c__}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+}}$<$ If,... $>$\+::\mbox{\hyperlink{group__type_gaefeff9de7bff8811e49692343ce6187e}{type}} =  \mbox{\hyperlink{structutl_1_1meta_1_1nil__}{nil\+\_\+}}}



avoid ill formed result 



Definition at line 45 of file selection.\+h.

\mbox{\Hypertarget{group__type_gaa7f24607990e92d8263246fc5f7003b7}\label{group__type_gaa7f24607990e92d8263246fc5f7003b7}} 
\index{selection@{selection}!type@{type}}
\index{type@{type}!selection@{selection}}
\subsubsection{\texorpdfstring{type}{type}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$typename Then $>$ \\
using \mbox{\hyperlink{structutl_1_1meta_1_1detail_1_1if__c__}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+}}$<$ true, Then $>$\+::\mbox{\hyperlink{group__type_gaa7f24607990e92d8263246fc5f7003b7}{type}} =  Then}



Definition at line 49 of file selection.\+h.

\mbox{\Hypertarget{group__type_ga15100ac40785819517c5defacb19915c}\label{group__type_ga15100ac40785819517c5defacb19915c}} 
\index{selection@{selection}!type@{type}}
\index{type@{type}!selection@{selection}}
\subsubsection{\texorpdfstring{type}{type}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$typename Then , typename Else $>$ \\
using \mbox{\hyperlink{structutl_1_1meta_1_1detail_1_1if__c__}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+}}$<$ true, Then, Else $>$\+::\mbox{\hyperlink{group__type_ga15100ac40785819517c5defacb19915c}{type}} =  Then}



Definition at line 53 of file selection.\+h.

\mbox{\Hypertarget{group__type_ga2fbed149992c081ac85eefaf63a388ca}\label{group__type_ga2fbed149992c081ac85eefaf63a388ca}} 
\index{selection@{selection}!type@{type}}
\index{type@{type}!selection@{selection}}
\subsubsection{\texorpdfstring{type}{type}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$typename Then , typename Else $>$ \\
using \mbox{\hyperlink{structutl_1_1meta_1_1detail_1_1if__c__}{utl\+::meta\+::detail\+::if\+\_\+c\+\_\+}}$<$ false, Then, Else $>$\+::\mbox{\hyperlink{group__type_ga2fbed149992c081ac85eefaf63a388ca}{type}} =  Else}



Definition at line 57 of file selection.\+h.

