[#bsl-invoke_result]
= xref:bsl.adoc[bsl]::invoke&lowbar;result
:relfileprefix: ../
:mrdocs:

Metafunction yielding the result type of invoking `t&lowbar;FN` with `t&lowbar;ARGTYPES`&period;

== Synopsis

Declared in `&lt;bslmf&lowbar;invokeresult&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class t&lowbar;FN,
    class&period;&period;&period; t&lowbar;ARGTYPES&gt;
class invoke&lowbar;result
    : public BloombergLP::bslmf::InvokeResult&lowbar;BaseCalcUtil&lt;t&lowbar;FN, t&lowbar;ARGTYPES&period;&period;&period;&gt;::BaseType
----

== Description

This class is a metafunction that conditionally provides a `type` member that is the type resulting from invoking an object of the specified `t&lowbar;FN` template parameter with arguments of the specified `t&lowbar;ARGTYPES` template parameters&period; More precisely, given types `F`, `T1`, `T2`, &period;&period;&period;, `TN` corresponding to expressions `f`, `t1`, `t2`, &period;&period;&period;, `tN`, `bslmf&colon;&colon;ResultType&lt;F, T1, T2, &period;&period;&period;, TN&gt;&colon;&colon;type` is usually the type of the psuedo&hyphen;expression `INVOKE(f, t1, t2, &period;&period;&period;, tN)`, as defined in section &lsqb;func&period;rquire&rsqb;of the C&plus;&plus;11 standard&period; If the compiler supports C&plus;&plus;11 `decltype` and the psuedo&hyphen;expression `INVOKE(f, t1, t2, &period;&period;&period;, tN)` is not well&hyphen;formed, this class provides no `type` member&period; If `t&lowbar;FN` is a class (functor) type and the compiler doesn&apos;t support C&plus;&plus;11 `decltype`, the return type is automatically deduced for fundamental types, `void`, pointers or references to those, or `bsl&colon;&colon;nullptr&lowbar;t` and is deduced by `bslmf&colon;&colon;ResultType&lt;t&lowbar;FN&gt;&colon;&colon;type` otherwise&period; If deduction fails, this metafunction yields `bslmf&colon;&colon;InvokeResultDeductionFailed`&period; See component&hyphen;level documentation for more detail&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `BloombergLP::bslmf::InvokeResult&lowbar;BaseCalcUtil&lt;t&lowbar;FN, t&lowbar;ARGTYPES&period;&period;&period;&gt;::BaseType`
| 
|===

== Derived Classes

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslstl/Function_InvokerUtil_ResultTypeImp-0d.adoc[`Function&lowbar;InvokerUtil&lowbar;ResultTypeImp&lt;bslmf::VoidType&lt;Function&lowbar;InvokerUtil&lowbar;ForwardType&lt;ARGS&gt;::Type&period;&period;&period;&gt;::type, FUNC, ARGS&period;&period;&period;&gt;`] 
| Partial specialization yielding the `INVOKE` result type of `FUNC`&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
