\hypertarget{typelist_8h}{}\section{include/utl/meta/typelist.h File Reference}
\label{typelist_8h}\index{include/utl/meta/typelist.\+h@{include/utl/meta/typelist.\+h}}


A template parameter \char`\"{}container\char`\"{}.  


{\ttfamily \#include $<$utl/core/impl.\+h$>$}\newline
{\ttfamily \#include $<$utl/meta/integral.\+h$>$}\newline
{\ttfamily \#include $<$utl/meta/detection.\+h$>$}\newline
{\ttfamily \#include $<$utl/meta/invoke.\+h$>$}\newline
{\ttfamily \#include $<$utl/meta/sfinae.\+h$>$}\newline
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1typelist}{utl\+::meta\+::typelist$<$ Ts $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1apply__impl_1_1apply__}{utl\+::meta\+::apply\+\_\+impl\+::apply\+\_\+$<$ Fn, Seq $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1apply__impl_1_1apply___3_01_fn_00_01typelist_3_01_list_8_8_8_01_4_01_4}{utl\+::meta\+::apply\+\_\+impl\+::apply\+\_\+$<$ Fn, typelist$<$ List... $>$ $>$}}
\begin{DoxyCompactList}\small\item\em {\ttfamily Sequence} == typelist$<$$>$ \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1apply__impl_1_1apply___3_01_fn_00_01integer__sequence_3_01_t_00_01_is_8_8_8_01_4_01_4}{utl\+::meta\+::apply\+\_\+impl\+::apply\+\_\+$<$ Fn, integer\+\_\+sequence$<$ T, Is... $>$ $>$}}
\begin{DoxyCompactList}\small\item\em Sequence == integer\+\_\+sequence$<$$>$ \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1at__impl_1_1__add__pointer}{utl\+::meta\+::at\+\_\+impl\+::\+\_\+add\+\_\+pointer$<$ T $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1at__impl_1_1at__head__}{utl\+::meta\+::at\+\_\+impl\+::at\+\_\+head\+\_\+$<$... $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1at__impl_1_1at__head___3_01typelist_3_01voids_8_8_8_01_4_01_4}{utl\+::meta\+::at\+\_\+impl\+::at\+\_\+head\+\_\+$<$ typelist$<$ voids... $>$ $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1at__impl_1_1at__}{utl\+::meta\+::at\+\_\+impl\+::at\+\_\+$<$ List, N $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1at__impl_1_1at___3_01typelist_3_01_list_8_8_8_01_4_00_01_n_01_4}{utl\+::meta\+::at\+\_\+impl\+::at\+\_\+$<$ typelist$<$ List... $>$, N $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1front__impl_1_1front__}{utl\+::meta\+::front\+\_\+impl\+::front\+\_\+$<$ L $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1front__impl_1_1front___3_01typelist_3_01_head_00_01_tail_8_8_8_01_4_01_4}{utl\+::meta\+::front\+\_\+impl\+::front\+\_\+$<$ typelist$<$ Head, Tail... $>$ $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1back__impl_1_1back__}{utl\+::meta\+::back\+\_\+impl\+::back\+\_\+$<$ List $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1back__impl_1_1back___3_01typelist_3_01_head_00_01_tail_8_8_8_01_4_01_4}{utl\+::meta\+::back\+\_\+impl\+::back\+\_\+$<$ typelist$<$ Head, Tail... $>$ $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1cat__impl_1_1cat__}{utl\+::meta\+::cat\+\_\+impl\+::cat\+\_\+$<$ Lists $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1cat__impl_1_1cat___3_4}{utl\+::meta\+::cat\+\_\+impl\+::cat\+\_\+$<$$>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1cat__impl_1_1cat___3_01typelist_3_01_l1_8_8_8_01_4_01_4}{utl\+::meta\+::cat\+\_\+impl\+::cat\+\_\+$<$ typelist$<$ L1... $>$ $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1cat__impl_1_1cat___3_01typelist_3_01_l1_8_8_8_01_4_00_01typelist_3_01_l2_8_8_8_01_4_01_4}{utl\+::meta\+::cat\+\_\+impl\+::cat\+\_\+$<$ typelist$<$ L1... $>$, typelist$<$ L2... $>$ $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1cat__impl_1_1cat___3_01typelist_3_01_l1_8_8_8_01_4_00_01typelist_3_01_l2_8_8_8_01_4_00_01_ln_8_8_8_01_4}{utl\+::meta\+::cat\+\_\+impl\+::cat\+\_\+$<$ typelist$<$ L1... $>$, typelist$<$ L2... $>$, Ln... $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1fold__impl_1_1fold__}{utl\+::meta\+::fold\+\_\+impl\+::fold\+\_\+$<$ typename, typename, typename $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1fold__impl_1_1fold___3_01typelist_3_01_head_00_01_tail_8_8_8_01_4_00_01_v_00_01_fn_01_4}{utl\+::meta\+::fold\+\_\+impl\+::fold\+\_\+$<$ typelist$<$ Head, Tail... $>$, V, Fn $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1fold__impl_1_1fold___3_01typelist_3_4_00_01_v0_00_01_fn_01_4}{utl\+::meta\+::fold\+\_\+impl\+::fold\+\_\+$<$ typelist$<$$>$, V0, Fn $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1rev__fold__impl_1_1rev__fold__}{utl\+::meta\+::rev\+\_\+fold\+\_\+impl\+::rev\+\_\+fold\+\_\+$<$ typename, typename, typename $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1rev__fold__impl_1_1rev__fold___3_01typelist_3_01_head_00_01_tail_8_8_8_01_4_00_01_v_00_01_fn_01_4}{utl\+::meta\+::rev\+\_\+fold\+\_\+impl\+::rev\+\_\+fold\+\_\+$<$ typelist$<$ Head, Tail... $>$, V, Fn $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1rev__fold__impl_1_1rev__fold___3_01typelist_3_01_tail_01_4_00_01_v_00_01_fn_01_4}{utl\+::meta\+::rev\+\_\+fold\+\_\+impl\+::rev\+\_\+fold\+\_\+$<$ typelist$<$ Tail $>$, V, Fn $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1rev__fold__impl_1_1rev__fold___3_01typelist_3_4_00_01_v_00_01_fn_01_4}{utl\+::meta\+::rev\+\_\+fold\+\_\+impl\+::rev\+\_\+fold\+\_\+$<$ typelist$<$$>$, V, Fn $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1reverse__impl_1_1reverse__}{utl\+::meta\+::reverse\+\_\+impl\+::reverse\+\_\+$<$ List, V $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1pop__front__impl_1_1pop__front__}{utl\+::meta\+::pop\+\_\+front\+\_\+impl\+::pop\+\_\+front\+\_\+$<$ List $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1pop__front__impl_1_1pop__front___3_01typelist_3_01_head_00_01_tail_8_8_8_01_4_01_4}{utl\+::meta\+::pop\+\_\+front\+\_\+impl\+::pop\+\_\+front\+\_\+$<$ typelist$<$ Head, Tail... $>$ $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1pop__back__impl_1_1pop__back__}{utl\+::meta\+::pop\+\_\+back\+\_\+impl\+::pop\+\_\+back\+\_\+$<$ List $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1transform__impl_1_1transform__}{utl\+::meta\+::transform\+\_\+impl\+::transform\+\_\+$<$ typename, typename $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1transform__impl_1_1transform___3_01typelist_3_01typelist_3_01_ts_8_8_8_01_40fe2b1c8ede658aadb6925de73541689}{utl\+::meta\+::transform\+\_\+impl\+::transform\+\_\+$<$ typelist$<$ typelist$<$ Ts... $>$, Fn $>$, void\+\_\+t$<$ invoke$<$ Fn, Ts $>$... $>$ $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1transform__impl_1_1transform___3_01typelist_3_01typelist_3_01_ts0_8_8_8_01_8fba6bf3d0565d17a96950cb517db5f1}{utl\+::meta\+::transform\+\_\+impl\+::transform\+\_\+$<$ typelist$<$ typelist$<$ Ts0... $>$, typelist$<$ Ts1... $>$, Fn $>$, void\+\_\+t$<$ invoke$<$ Fn, Ts0, Ts1 $>$... $>$ $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1transform__lazy__impl_1_1transform__lazy__}{utl\+::meta\+::transform\+\_\+lazy\+\_\+impl\+::transform\+\_\+lazy\+\_\+$<$ typename, typename $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1transform__lazy__impl_1_1transform__lazy___3_01typelist_3_01typelist_3_01_t56243bc35bf73da8271cb88f34751f3a}{utl\+::meta\+::transform\+\_\+lazy\+\_\+impl\+::transform\+\_\+lazy\+\_\+$<$ typelist$<$ typelist$<$ Ts... $>$, Fn $>$, void\+\_\+t$<$ invoke$<$ Fn, Ts $>$... $>$ $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1transform__lazy__impl_1_1transform__lazy___3_01typelist_3_01typelist_3_01_t14ff615a4bff6c4c3701df9c38aaa6a5}{utl\+::meta\+::transform\+\_\+lazy\+\_\+impl\+::transform\+\_\+lazy\+\_\+$<$ typelist$<$ typelist$<$ Ts0... $>$, typelist$<$ Ts1... $>$, Fn $>$, void\+\_\+t$<$ invoke$<$ Fn, Ts0, Ts1 $>$... $>$ $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1find__if__impl_1_1find__if__}{utl\+::meta\+::find\+\_\+if\+\_\+impl\+::find\+\_\+if\+\_\+$<$ typename, typename, index\+\_\+t $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1find__if__impl_1_1find__if___3_01typelist_3_01_head_00_01_tail_8_8_8_01_4_00_01_fn_00_01_n_01_4}{utl\+::meta\+::find\+\_\+if\+\_\+impl\+::find\+\_\+if\+\_\+$<$ typelist$<$ Head, Tail... $>$, Fn, N $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1find__if__impl_1_1find__if___3_01typelist_3_4_00_01_fn_00_01_n_01_4}{utl\+::meta\+::find\+\_\+if\+\_\+impl\+::find\+\_\+if\+\_\+$<$ typelist$<$$>$, Fn, N $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1seek__if__impl_1_1seek__if__}{utl\+::meta\+::seek\+\_\+if\+\_\+impl\+::seek\+\_\+if\+\_\+$<$ typename, typename, index\+\_\+t $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1seek__if__impl_1_1seek__if___3_01typelist_3_01_head_00_01_tail_8_8_8_01_4_00_01_fn_00_01_n_01_4}{utl\+::meta\+::seek\+\_\+if\+\_\+impl\+::seek\+\_\+if\+\_\+$<$ typelist$<$ Head, Tail... $>$, Fn, N $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1seek__if__impl_1_1seek__if___3_01typelist_3_4_00_01_fn_00_01_n_01_4}{utl\+::meta\+::seek\+\_\+if\+\_\+impl\+::seek\+\_\+if\+\_\+$<$ typelist$<$$>$, Fn, N $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1count__if__impl_1_1count__if__}{utl\+::meta\+::count\+\_\+if\+\_\+impl\+::count\+\_\+if\+\_\+$<$ typename, typename, size\+\_\+t $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1count__if__impl_1_1count__if___3_01typelist_3_01_head_00_01_tail_8_8_8_01_4_00_01_fn_00_01_n_01_4}{utl\+::meta\+::count\+\_\+if\+\_\+impl\+::count\+\_\+if\+\_\+$<$ typelist$<$ Head, Tail... $>$, Fn, N $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1count__if__impl_1_1count__if___3_01typelist_3_4_00_01_fn_00_01_n_01_4}{utl\+::meta\+::count\+\_\+if\+\_\+impl\+::count\+\_\+if\+\_\+$<$ typelist$<$$>$, Fn, N $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1filter__impl_1_1filter__}{utl\+::meta\+::filter\+\_\+impl\+::filter\+\_\+$<$ typename, typename, typename $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1filter__impl_1_1filter___3_01typelist_3_01_head_00_01_tail_8_8_8_01_4_00_01_fn_00_01_l_01_4}{utl\+::meta\+::filter\+\_\+impl\+::filter\+\_\+$<$ typelist$<$ Head, Tail... $>$, Fn, L $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1filter__impl_1_1filter___3_01typelist_3_4_00_01_fn_00_01_l_01_4}{utl\+::meta\+::filter\+\_\+impl\+::filter\+\_\+$<$ typelist$<$$>$, Fn, L $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1replace__if__impl_1_1replace__if__}{utl\+::meta\+::replace\+\_\+if\+\_\+impl\+::replace\+\_\+if\+\_\+$<$ typename, typename, typename, typename $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1replace__if__impl_1_1replace__if___3_01typelist_3_01_head_00_01_tail_8_8_8_dfa8065a3617f53ecded260506092a07}{utl\+::meta\+::replace\+\_\+if\+\_\+impl\+::replace\+\_\+if\+\_\+$<$ typelist$<$ Head, Tail... $>$, Fn, T, Ret $>$}}
\item 
struct \mbox{\hyperlink{structutl_1_1meta_1_1replace__if__impl_1_1replace__if___3_01typelist_3_4_00_01_fn_00_01_t_00_01_ret_01_4}{utl\+::meta\+::replace\+\_\+if\+\_\+impl\+::replace\+\_\+if\+\_\+$<$ typelist$<$$>$, Fn, T, Ret $>$}}
\end{DoxyCompactItemize}
\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}{utl\+::meta}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1apply__impl}{utl\+::meta\+::apply\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1at__impl}{utl\+::meta\+::at\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1front__impl}{utl\+::meta\+::front\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1back__impl}{utl\+::meta\+::back\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1cat__impl}{utl\+::meta\+::cat\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1fold__impl}{utl\+::meta\+::fold\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1rev__fold__impl}{utl\+::meta\+::rev\+\_\+fold\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1reverse__impl}{utl\+::meta\+::reverse\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1pop__front__impl}{utl\+::meta\+::pop\+\_\+front\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1pop__back__impl}{utl\+::meta\+::pop\+\_\+back\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1transform__impl}{utl\+::meta\+::transform\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1transform__lazy__impl}{utl\+::meta\+::transform\+\_\+lazy\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1find__if__impl}{utl\+::meta\+::find\+\_\+if\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1seek__if__impl}{utl\+::meta\+::seek\+\_\+if\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1count__if__impl}{utl\+::meta\+::count\+\_\+if\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1filter__impl}{utl\+::meta\+::filter\+\_\+impl}}
\item 
 \mbox{\hyperlink{namespaceutl_1_1meta_1_1replace__if__impl}{utl\+::meta\+::replace\+\_\+if\+\_\+impl}}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a0edfc2c15e42531e53c0822264d220ec}{utl\+::meta\+::size}} = size\+\_\+$<$ List\+::size()$>$
\item 
{\footnotesize template$<$typename List $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a58c1744750d0df133034f60a95f87e19}{utl\+::meta\+::empty}} = bool\+\_\+$<$ List\+::empty()$>$
\item 
{\footnotesize template$<$typename T1 , typename T2 $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aa6513d9d2a5db3ba3517efff33adc761}{utl\+::meta\+::pair}} = typelist$<$ T1, T2 $>$
\item 
{\footnotesize template$<$typename T $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_1_1at__impl_a1759f370bc952ff21077efca9fe0e0b4}{utl\+::meta\+::at\+\_\+impl\+::add\+\_\+pointer}} = eval$<$ \+\_\+add\+\_\+pointer$<$ T $>$ $>$
\item 
{\footnotesize template$<$typename List , typename... Ts$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ab0f84ba0807b6fd36fa9e4e5cfc4cd32}{utl\+::meta\+::push\+\_\+front}} = eval$<$ apply$<$ bind\+\_\+front$<$ quote$<$ typelist $>$, Ts... $>$, List $>$ $>$
\item 
{\footnotesize template$<$typename List , typename... Ts$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_adf545ba110edc6a34ddcaf2280a0c7f4}{utl\+::meta\+::push\+\_\+back}} = eval$<$ apply$<$ bind\+\_\+back$<$ quote$<$ typelist $>$, Ts... $>$, List $>$ $>$
\item 
{\footnotesize template$<$typename List , typename Pred $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ace96e2f19376375cc71ee0cd80f4bb75}{utl\+::meta\+::all\+\_\+of}} = if\+\_\+$<$ empty$<$ List $>$, false\+\_\+, empty$<$ filter$<$ List, compose$<$ quote$<$ not\+\_\+ $>$, Pred $>$ $>$ $>$ $>$
\item 
{\footnotesize template$<$typename List , typename Pred $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a212c26a29491610187f6e8543f06df5f}{utl\+::meta\+::any\+\_\+of}} = not\+\_\+$<$ empty$<$ filter$<$ List, Pred $>$ $>$ $>$
\item 
{\footnotesize template$<$typename List , typename Pred $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_af324255cfaa0be3f02843961f5becb85}{utl\+::meta\+::none\+\_\+of}} = empty$<$ filter$<$ List, Pred $>$ $>$
\end{DoxyCompactItemize}
\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$size\+\_\+t N, typename ... Ts$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_af6ff0017ea5e914543527b7135930f47}{utl\+::meta\+::repeat\+\_\+c}} = typename typelist$<$ Ts... $>$\+::template times$<$ N $>$
\item 
{\footnotesize template$<$typename N , typename ... Ts$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aa013c45afb59b5c132a72be54ba145fb}{utl\+::meta\+::repeat}} = repeat\+\_\+c$<$ N\+::type\+::value, Ts... $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename Fn , typename Seq $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a3f684549221fac60bc8c7979cb4b98f4}{utl\+::meta\+::apply}} = apply\+\_\+impl\+::apply\+\_\+$<$ Fn, Seq $>$
\item 
{\footnotesize template$<$typename Fn , typename Seq $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ac2952cd4ed04938edc6de21ffe200e9b}{utl\+::meta\+::apply\+\_\+t}} = eval$<$ apply$<$ Fn, Seq $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List , index\+\_\+t N$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a6683b804a20d54817d61ce4663527084}{utl\+::meta\+::at\+\_\+c}} = eval$<$ at\+\_\+impl\+::at\+\_\+$<$ List, N $>$ $>$
\item 
{\footnotesize template$<$typename List , typename N $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a67329ec425c857dcaf4cde9044674c90}{utl\+::meta\+::at}} = at\+\_\+c$<$ List, N\+::type\+::value $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ace309fb2eff5c4a5a806b9393abea486}{utl\+::meta\+::front}} = eval$<$ front\+\_\+impl\+::front\+\_\+$<$ List $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ad9ee55707fc633d53577b81a59136b7d}{utl\+::meta\+::back}} = eval$<$ back\+\_\+impl\+::back\+\_\+$<$ List $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename... Lists$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a70d0910ace47f4e12e8fa0788679044a}{utl\+::meta\+::cat}} = eval$<$ cat\+\_\+impl\+::cat\+\_\+$<$ Lists... $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List , typename V , typename Fn $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a6108f39d28c924146eff4143a61af226}{utl\+::meta\+::fold}} = eval$<$ fold\+\_\+impl\+::fold\+\_\+$<$ List, V, Fn $>$ $>$
\item 
{\footnotesize template$<$typename List , typename V , typename Fn $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aeb5cb48e804cd160b39f8c3ed2967c37}{utl\+::meta\+::accumulate}} = fold$<$ List, V, Fn $>$
\begin{DoxyCompactList}\small\item\em accumulate is an stl name for fold \end{DoxyCompactList}\item 
{\footnotesize template$<$typename List , typename V , typename Fn $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ab1a91edef4cf9fd56b73c9a03eaeb3d4}{utl\+::meta\+::rev\+\_\+fold}} = eval$<$ rev\+\_\+fold\+\_\+impl\+::rev\+\_\+fold\+\_\+$<$ List, V, Fn $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a2ae6bfa22f1912b0ba09d24e0ae2ccd9}{utl\+::meta\+::reverse}} = eval$<$ reverse\+\_\+impl\+::reverse\+\_\+$<$ List $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aa4a307a81c0640c6c0dd08f8a53f3c32}{utl\+::meta\+::pop\+\_\+front}} = eval$<$ pop\+\_\+front\+\_\+impl\+::pop\+\_\+front\+\_\+$<$ List $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a86a37f5803c474823963e1f3c6f7a6d6}{utl\+::meta\+::pop\+\_\+back}} = eval$<$ pop\+\_\+back\+\_\+impl\+::pop\+\_\+back\+\_\+$<$ List $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename... Args$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ac8bbf187eea3cb5da38d1bdc97b52334}{utl\+::meta\+::transform}} = eval$<$ transform\+\_\+impl\+::transform\+\_\+$<$ typelist$<$ Args... $>$ $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename... Args$>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a55c0405bfb94c1d285d3131390c31451}{utl\+::meta\+::transform\+\_\+lazy}} = eval$<$ transform\+\_\+lazy\+\_\+impl\+::transform\+\_\+lazy\+\_\+$<$ typelist$<$ Args... $>$ $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List , typename Pred $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aacf124929c0cbb3b29d34679bff50a96}{utl\+::meta\+::find\+\_\+if}} = eval$<$ find\+\_\+if\+\_\+impl\+::find\+\_\+if\+\_\+$<$ List, Pred, 0 $>$ $>$
\item 
{\footnotesize template$<$typename List , typename T $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_af4c9b6350bba98cc0dd73e87cb4ce413}{utl\+::meta\+::find}} = find\+\_\+if$<$ List, same\+\_\+as$<$ T $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List , typename Pred $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ab8eafd75f3077a36c4e3363b742da64a}{utl\+::meta\+::seek\+\_\+if}} = eval$<$ seek\+\_\+if\+\_\+impl\+::seek\+\_\+if\+\_\+$<$ List, Pred, 0 $>$ $>$
\item 
{\footnotesize template$<$typename List , typename T $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_aa550d9dc96d34623af4ce71f8a1eaff5}{utl\+::meta\+::seek}} = seek\+\_\+if$<$ List, same\+\_\+as$<$ T $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List , typename Pred $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a981e18b40d69cdd76466de7bfe24e619}{utl\+::meta\+::count\+\_\+if}} = eval$<$ count\+\_\+if\+\_\+impl\+::count\+\_\+if\+\_\+$<$ List, Pred, 0 $>$ $>$
\item 
{\footnotesize template$<$typename List , typename T $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ab5508236016638fa8e6b97cd17dfc9c2}{utl\+::meta\+::count}} = count\+\_\+if$<$ List, same\+\_\+as$<$ T $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List , typename Pred $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ac72acc616316c322e750d20a46553ba4}{utl\+::meta\+::filter}} = eval$<$ filter\+\_\+impl\+::filter\+\_\+$<$ List, Pred, typelist$<$$>$ $>$ $>$
\end{DoxyCompactItemize}

\textbf{ }\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename List , typename Pred , typename T $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_a848a47bf281bf3eaf932cc9113477102}{utl\+::meta\+::replace\+\_\+if}} = eval$<$ replace\+\_\+if\+\_\+impl\+::replace\+\_\+if\+\_\+$<$ List, Pred, T, typelist$<$$>$ $>$ $>$
\item 
{\footnotesize template$<$typename List , typename T , typename U $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1meta_ac9d120f858ebfa2b0ef74c6305a9fb6d}{utl\+::meta\+::replace}} = eval$<$ replace\+\_\+if$<$ List, same\+\_\+as$<$ T $>$, U $>$ $>$
\end{DoxyCompactItemize}



\subsection{Detailed Description}
A template parameter \char`\"{}container\char`\"{}. 

Copyright (C) 2018-\/2019 Christos Choutouridis

This program is free software\+: you can redistribute it and/or modify it under the terms of the G\+NU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but W\+I\+T\+H\+O\+UT A\+NY W\+A\+R\+R\+A\+N\+TY; without even the implied warranty of M\+E\+R\+C\+H\+A\+N\+T\+A\+B\+I\+L\+I\+TY or F\+I\+T\+N\+E\+SS F\+OR A P\+A\+R\+T\+I\+C\+U\+L\+AR P\+U\+R\+P\+O\+SE. See the G\+NU Lesser General Public License for more details.

You should have received a copy of the G\+NU Lesser General Public License along with this program. If not, see \href{http://www.gnu.org/licenses/}{\tt http\+://www.\+gnu.\+org/licenses/}. 