\hypertarget{structkblib_1_1fakestd_1_1detail_1_1invokable__r}{}\doxysection{kblib\+::fakestd\+::detail\+::invokable\+\_\+r\texorpdfstring{$<$}{<} Ret, Fp, Args \texorpdfstring{$>$}{>} Struct Template Reference}
\label{structkblib_1_1fakestd_1_1detail_1_1invokable__r}\index{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$@{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$}}


{\ttfamily \#include $<$kblib/fakestd.\+h$>$}

\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
using \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_aef19fd92af3f760d46eec6db632ac4df}{Result}} = decltype(\mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_a3b66cd7bd432f7db0b4ec65291e3046c}{try\+\_\+call}}$<$ Fp, Args... $>$(0))
\item 
using \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_a1bb75c431ac0ca4e7c83294c02e0b839}{type}} = typename std\+::conditional$<$ not std\+::is\+\_\+same$<$ \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_aef19fd92af3f760d46eec6db632ac4df}{Result}}, \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1nat}{detail\+::nat}} $>$\mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_af024b4751f7bea9b13c3c52d1ad7f6af}{\+::value}}, typename std\+::conditional$<$ std\+::is\+\_\+void$<$ Ret $>$\mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_af024b4751f7bea9b13c3c52d1ad7f6af}{\+::value}}, std\+::true\+\_\+type, std\+::is\+\_\+convertible$<$ \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_aef19fd92af3f760d46eec6db632ac4df}{Result}}, Ret $>$ $>$\+::type, std\+::false\+\_\+type $>$\+::type
\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$class XFp , class... XArgs$>$ }\\static auto \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_a3b66cd7bd432f7db0b4ec65291e3046c}{try\+\_\+call}} (int) -\/$>$ decltype(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(std\+::declval$<$ XFp $>$(), std\+::declval$<$ XArgs $>$()...))
\item 
{\footnotesize template$<$class XFp , class... XArgs$>$ }\\static auto \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_a48a55ae0d97a8b3329ef0d205410f82a}{try\+\_\+call}} (...) -\/$>$ \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1nat}{detail\+::nat}}
\end{DoxyCompactItemize}
\doxysubsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static const bool \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_af024b4751f7bea9b13c3c52d1ad7f6af}{value}} = type\+::value
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$class Ret, class Fp, class... Args$>$\newline
struct kblib\+::fakestd\+::detail\+::invokable\+\_\+r$<$ Ret, Fp, Args $>$}


Definition at line \mbox{\hyperlink{fakestd_8h_source_l00380}{380}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.



\doxysubsection{Member Typedef Documentation}
\mbox{\Hypertarget{structkblib_1_1fakestd_1_1detail_1_1invokable__r_aef19fd92af3f760d46eec6db632ac4df}\label{structkblib_1_1fakestd_1_1detail_1_1invokable__r_aef19fd92af3f760d46eec6db632ac4df}} 
\index{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$@{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$}!Result@{Result}}
\index{Result@{Result}!kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$@{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$}}
\doxysubsubsection{\texorpdfstring{Result}{Result}}
{\footnotesize\ttfamily template$<$class Ret , class Fp , class... Args$>$ \\
using \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r}{kblib\+::fakestd\+::detail\+::invokable\+\_\+r}}$<$ Ret, Fp, Args $>$\+::\+Result =  decltype(\mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_a3b66cd7bd432f7db0b4ec65291e3046c}{try\+\_\+call}}$<$Fp, Args...$>$(0))}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00388}{388}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.

\mbox{\Hypertarget{structkblib_1_1fakestd_1_1detail_1_1invokable__r_a1bb75c431ac0ca4e7c83294c02e0b839}\label{structkblib_1_1fakestd_1_1detail_1_1invokable__r_a1bb75c431ac0ca4e7c83294c02e0b839}} 
\index{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$@{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$}!type@{type}}
\index{type@{type}!kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$@{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$}}
\doxysubsubsection{\texorpdfstring{type}{type}}
{\footnotesize\ttfamily template$<$class Ret , class Fp , class... Args$>$ \\
using \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r}{kblib\+::fakestd\+::detail\+::invokable\+\_\+r}}$<$ Ret, Fp, Args $>$\+::type =  typename std\+::conditional$<$ not std\+::is\+\_\+same$<$\mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_aef19fd92af3f760d46eec6db632ac4df}{Result}}, \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1nat}{detail\+::nat}}$>$\mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_af024b4751f7bea9b13c3c52d1ad7f6af}{\+::value}}, typename std\+::conditional$<$std\+::is\+\_\+void$<$Ret$>$\mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_af024b4751f7bea9b13c3c52d1ad7f6af}{\+::value}}, std\+::true\+\_\+type, std\+::is\+\_\+convertible$<$\mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r_aef19fd92af3f760d46eec6db632ac4df}{Result}}, Ret$>$ $>$\+::type, std\+::false\+\_\+type$>$\+::type}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00390}{390}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{structkblib_1_1fakestd_1_1detail_1_1invokable__r_a48a55ae0d97a8b3329ef0d205410f82a}\label{structkblib_1_1fakestd_1_1detail_1_1invokable__r_a48a55ae0d97a8b3329ef0d205410f82a}} 
\index{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$@{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$}!try\_call@{try\_call}}
\index{try\_call@{try\_call}!kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$@{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$}}
\doxysubsubsection{\texorpdfstring{try\_call()}{try\_call()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class Ret , class Fp , class... Args$>$ \\
template$<$class XFp , class... XArgs$>$ \\
static auto \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r}{kblib\+::fakestd\+::detail\+::invokable\+\_\+r}}$<$ Ret, Fp, Args $>$\+::try\+\_\+call (\begin{DoxyParamCaption}\item[{}]{... }\end{DoxyParamCaption}) -\/$>$  \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1nat}{detail\+::nat}}\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{structkblib_1_1fakestd_1_1detail_1_1invokable__r_a3b66cd7bd432f7db0b4ec65291e3046c}\label{structkblib_1_1fakestd_1_1detail_1_1invokable__r_a3b66cd7bd432f7db0b4ec65291e3046c}} 
\index{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$@{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$}!try\_call@{try\_call}}
\index{try\_call@{try\_call}!kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$@{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$}}
\doxysubsubsection{\texorpdfstring{try\_call()}{try\_call()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class Ret , class Fp , class... Args$>$ \\
template$<$class XFp , class... XArgs$>$ \\
static auto \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r}{kblib\+::fakestd\+::detail\+::invokable\+\_\+r}}$<$ Ret, Fp, Args $>$\+::try\+\_\+call (\begin{DoxyParamCaption}\item[{int}]{ }\end{DoxyParamCaption}) -\/$>$  decltype(\mbox{\hyperlink{namespacekblib_a9b10acd2ddaea118b990e1177f626722}{kblib\+::invoke}}(std\+::declval$<$ XFp $>$(), std\+::declval$<$ XArgs $>$()...))\hspace{0.3cm}{\ttfamily [static]}}



\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{structkblib_1_1fakestd_1_1detail_1_1invokable__r_af024b4751f7bea9b13c3c52d1ad7f6af}\label{structkblib_1_1fakestd_1_1detail_1_1invokable__r_af024b4751f7bea9b13c3c52d1ad7f6af}} 
\index{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$@{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$}!value@{value}}
\index{value@{value}!kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$@{kblib::fakestd::detail::invokable\_r$<$ Ret, Fp, Args $>$}}
\doxysubsubsection{\texorpdfstring{value}{value}}
{\footnotesize\ttfamily template$<$class Ret , class Fp , class... Args$>$ \\
const bool \mbox{\hyperlink{structkblib_1_1fakestd_1_1detail_1_1invokable__r}{kblib\+::fakestd\+::detail\+::invokable\+\_\+r}}$<$ Ret, Fp, Args $>$\+::value = type\+::value\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{fakestd_8h_source_l00395}{395}} of file \mbox{\hyperlink{fakestd_8h_source}{fakestd.\+h}}.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
kblib/\mbox{\hyperlink{fakestd_8h}{fakestd.\+h}}\end{DoxyCompactItemize}
