[#bsl-invoke_result] = xref:bsl.adoc[bsl]::invoke_result :relfileprefix: ../ :mrdocs: This class is a metafunction that conditionally provides a `type` member that is the type resulting from invoking an object of the specified `t_FN` template parameter with arguments of the specified `t_ARGTYPES` template parameters. More precisely, given types `F`, `T1`, `T2`, ..., `TN` corresponding to expressions `f`, `t1`, `t2`, ..., `tN`, `bslmf::ResultType<F, T1, T2, ..., TN>::type` is usually the type of the psuedo‐expression `(f, t1, t2, ..., tN)`, as defined in section [func.rquire]of the C++11 standard. If the compiler supports C++11 `decltype` and the psuedo‐expression `(f, t1, t2, ..., tN)` is not well‐formed, this class provides no `type` member. If `t_FN` is a class (functor) type and the compiler doesn't support C++11 `decltype`, the return type is automatically deduced for fundamental types, `void`, pointers or references to those, or `bsl::nullptr_t` and is deduced by `bslmf::ResultType<t_FN>::type` otherwise. If deduction fails, this metafunction yields `bslmf::InvokeResultDeductionFailed`. See component‐level documentation for more detail. == Synopsis Declared in `<bslmf_invokeresult.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_FN, class... t_ARGTYPES> class invoke_result : public BloombergLP::bslmf::InvokeResult_BaseCalcUtil<t_FN, t_ARGTYPES...>::BaseType ---- == Base Classes [cols="1,4"] |=== | Name| Description | `BloombergLP::bslmf::InvokeResult_BaseCalcUtil<t_FN, t_ARGTYPES...>::BaseType` | |=== == Derived Classes [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslstl/Function_InvokerUtil_ResultTypeImp-0d.adoc[`Function_InvokerUtil_ResultTypeImp<bslmf::VoidType<Function_InvokerUtil_ForwardType<ARGS>::Type...>::type, FUNC, ARGS...>`] | |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#