\hypertarget{namespaceutl_1_1detail}{}\section{utl\+:\+:detail Namespace Reference} \label{namespaceutl_1_1detail}\index{utl\+::detail@{utl\+::detail}} \subsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structutl_1_1detail_1_1invoke__result__}{invoke\+\_\+result\+\_\+}} \item struct \mbox{\hyperlink{structutl_1_1detail_1_1invoke__result___3_01true_00_01___callable_00_01___args_8_8_8_01_4}{invoke\+\_\+result\+\_\+$<$ true, \+\_\+\+Callable, \+\_\+\+Args... $>$}} \item struct \mbox{\hyperlink{structutl_1_1detail_1_1is__ref__wrapper}{is\+\_\+ref\+\_\+wrapper}} \item struct \mbox{\hyperlink{structutl_1_1detail_1_1is__ref__wrapper_3_01std_1_1reference__wrapper_3_01_u_01_4_01_4}{is\+\_\+ref\+\_\+wrapper$<$ std\+::reference\+\_\+wrapper$<$ U $>$ $>$}} \item struct \mbox{\hyperlink{structutl_1_1detail_1_1try__invoke}{try\+\_\+invoke}} \end{DoxyCompactItemize} \subsection*{Typedefs} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename I $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1detail_a50e7a46f910a83190bca5a58f67f1e2d}{try\+\_\+ppI}} = decltype(++(std\+::declval$<$ I $>$())) \item {\footnotesize template$<$typename I $>$ }\\using \mbox{\hyperlink{namespaceutl_1_1detail_a1371d13b3e8408cfc68e82b03ca9f3b0}{try\+\_\+\+Ipp}} = decltype(std\+::declval$<$ I $>$()++) \end{DoxyCompactItemize} \subsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$class T , class Type , class T1 , class... Args, meta\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ std\+::decay\+\_\+t$<$ Type T\+::$\ast$$>$$>$\+::value \&\&std\+::is\+\_\+base\+\_\+of$<$ T, std\+::decay\+\_\+t$<$ T1 $>$$>$\+::value, int $>$ = 0$>$ }\\decltype(auto) \mbox{\hyperlink{namespaceutl_1_1detail_a2c39a67272ada5da5f1b84115dadc4a1}{invoke\+\_\+impl\+\_\+}} (Type T\+::$\ast$f, T1 \&\&t1, Args \&\&... args) \item {\footnotesize template$<$class F , class... Args$>$ }\\decltype(auto) \mbox{\hyperlink{namespaceutl_1_1detail_a09341831ecc9aab67a23d3a47b2d114f}{invoke\+\_\+impl\+\_\+}} (F \&\&f, Args \&\&... args) \end{DoxyCompactItemize} \subsection{Detailed Description} invoke\+\_\+result (S\+F\+I\+N\+AE friendly) \subsection{Typedef Documentation} \mbox{\Hypertarget{namespaceutl_1_1detail_a1371d13b3e8408cfc68e82b03ca9f3b0}\label{namespaceutl_1_1detail_a1371d13b3e8408cfc68e82b03ca9f3b0}} \index{utl\+::detail@{utl\+::detail}!try\+\_\+\+Ipp@{try\+\_\+\+Ipp}} \index{try\+\_\+\+Ipp@{try\+\_\+\+Ipp}!utl\+::detail@{utl\+::detail}} \subsubsection{\texorpdfstring{try\+\_\+\+Ipp}{try\_Ipp}} {\footnotesize\ttfamily template$<$typename I $>$ \\ using \mbox{\hyperlink{namespaceutl_1_1detail_a1371d13b3e8408cfc68e82b03ca9f3b0}{utl\+::detail\+::try\+\_\+\+Ipp}} = typedef decltype (std\+::declval$<$I$>$()++)} Definition at line 46 of file iterators.\+h. \mbox{\Hypertarget{namespaceutl_1_1detail_a50e7a46f910a83190bca5a58f67f1e2d}\label{namespaceutl_1_1detail_a50e7a46f910a83190bca5a58f67f1e2d}} \index{utl\+::detail@{utl\+::detail}!try\+\_\+ppI@{try\+\_\+ppI}} \index{try\+\_\+ppI@{try\+\_\+ppI}!utl\+::detail@{utl\+::detail}} \subsubsection{\texorpdfstring{try\+\_\+ppI}{try\_ppI}} {\footnotesize\ttfamily template$<$typename I $>$ \\ using \mbox{\hyperlink{namespaceutl_1_1detail_a50e7a46f910a83190bca5a58f67f1e2d}{utl\+::detail\+::try\+\_\+ppI}} = typedef decltype (++(std\+::declval$<$I$>$()))} Definition at line 45 of file iterators.\+h. \subsection{Function Documentation} \mbox{\Hypertarget{namespaceutl_1_1detail_a2c39a67272ada5da5f1b84115dadc4a1}\label{namespaceutl_1_1detail_a2c39a67272ada5da5f1b84115dadc4a1}} \index{utl\+::detail@{utl\+::detail}!invoke\+\_\+impl\+\_\+@{invoke\+\_\+impl\+\_\+}} \index{invoke\+\_\+impl\+\_\+@{invoke\+\_\+impl\+\_\+}!utl\+::detail@{utl\+::detail}} \subsubsection{\texorpdfstring{invoke\+\_\+impl\+\_\+()}{invoke\_impl\_()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}} {\footnotesize\ttfamily template$<$class T , class Type , class T1 , class... Args, meta\+::enable\+\_\+if\+\_\+t$<$ std\+::is\+\_\+member\+\_\+function\+\_\+pointer$<$ std\+::decay\+\_\+t$<$ Type T\+::$\ast$$>$$>$\+::value \&\&std\+::is\+\_\+base\+\_\+of$<$ T, std\+::decay\+\_\+t$<$ T1 $>$$>$\+::value, int $>$ = 0$>$ \\ decltype(auto) utl\+::detail\+::invoke\+\_\+impl\+\_\+ (\begin{DoxyParamCaption}\item[{Type T\+::$\ast$}]{f, }\item[{T1 \&\&}]{t1, }\item[{Args \&\&...}]{args }\end{DoxyParamCaption})} Definition at line 51 of file invoke.\+h. \mbox{\Hypertarget{namespaceutl_1_1detail_a09341831ecc9aab67a23d3a47b2d114f}\label{namespaceutl_1_1detail_a09341831ecc9aab67a23d3a47b2d114f}} \index{utl\+::detail@{utl\+::detail}!invoke\+\_\+impl\+\_\+@{invoke\+\_\+impl\+\_\+}} \index{invoke\+\_\+impl\+\_\+@{invoke\+\_\+impl\+\_\+}!utl\+::detail@{utl\+::detail}} \subsubsection{\texorpdfstring{invoke\+\_\+impl\+\_\+()}{invoke\_impl\_()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}} {\footnotesize\ttfamily template$<$class F , class... Args$>$ \\ decltype(auto) utl\+::detail\+::invoke\+\_\+impl\+\_\+ (\begin{DoxyParamCaption}\item[{F \&\&}]{f, }\item[{Args \&\&...}]{args }\end{DoxyParamCaption})} Definition at line 113 of file invoke.\+h.