[#BloombergLP-bslmf-InvokeResult_FuncPtrImp-0c] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::xref:BloombergLP/bslmf/InvokeResult_FuncPtrImp-0d.adoc[InvokeResult_FuncPtrImp]<bslmf::VoidType<decltype(InvokeResult_ImpUtils::myDeclval<t_FN>()( InvokeResult_ImpUtils::myDeclval<t_ARGTYPES>()...))>::type, t_FN, t_ARGTYPES...> :relfileprefix: ../../ :mrdocs: Implementation of `invoke_result<t_FN, t_ARGTYPES...>`. This specialization is instantiated in C++11 and later when `t_FN` is a pointer‐to‐function type, and the `INVOKE(fn, args...)` expression is well‐formed given `fn` is an object of the specified `t_FN` type and `args...` are objects of the specified `t_ARGTYPES...` types. The `INVOKE(fn, args...)` expression in this case is `fn(args...)`. == Synopsis Declared in `<bslmf_invokeresult.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_FN, class... t_ARGTYPES> struct xref:BloombergLP/bslmf/InvokeResult_FuncPtrImp-0d.adoc[InvokeResult_FuncPtrImp]<bslmf::VoidType<decltype(InvokeResult_ImpUtils::myDeclval<t_FN>()( InvokeResult_ImpUtils::myDeclval<t_ARGTYPES>()...))>::type, t_FN, t_ARGTYPES...> : /* implementation-defined */ ---- == Base Classes [cols="1,4"] |=== | Name| Description | `/* implementation-defined */` | Utility metaprogramming functions inherited by other metaprogramming classes. |=== == Types [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmf/InvokeResult_FuncPtrImp-0c/AnyLvalue.adoc[`AnyLvalue`] | Type convertible from any lvalue type. Used for overload resolution in metafunctions. | xref:BloombergLP/bslmf/InvokeResult_FuncPtrImp-0c/AnyRvalue.adoc[`AnyRvalue`] | Type convertible from any rvalue type. Used for overload resolution in metafunctions. |=== == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmf/InvokeResult_FuncPtrImp-0c/type.adoc[`type`] | For C++11 and later, the type of result of the `INVOKE(fn, args...)` expression where `fn` is an object of the specified `t_FN` type, and `args...` are objects of the specified `t_ARGTYPES...` types. The `INVOKE(fn, args...)` expression in this case is is `fn(args...)`. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmf/InvokeResult_FuncPtrImp-0c/checkConst-0ee.adoc[`checkConst`] | `checkConst` overloads | xref:BloombergLP/bslmf/InvokeResult_FuncPtrImp-0c/checkLvalue-0e.adoc[`checkLvalue`] | `checkLvalue` overloads | xref:BloombergLP/bslmf/InvokeResult_FuncPtrImp-0c/checkVolatile-07.adoc[`checkVolatile`] | `checkVolatile` overloads | xref:BloombergLP/bslmf/InvokeResult_FuncPtrImp-0c/myDeclval.adoc[`myDeclval`] | Return a reference to the specified `t_SOME_TYPE` template parameter type; if `t_SOME_TYPE` is an rvalue, then the returned reference is an rvalue reference. This function is declared but not defined and is intended to be called in an unevaluated context. Because there is no definition, the available constructors for `t_SOME_TYPE` are irrelevant. | xref:BloombergLP/bslmf/InvokeResult_FuncPtrImp-0c/uncv-041.adoc[`uncv`] | `uncv` overloads | xref:BloombergLP/bslmf/InvokeResult_FuncPtrImp-0c/unpoint-0b7.adoc[`unpoint`] | `unpoint` overloads |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#