[#BloombergLP-bslmf-InvokeResult_MemFuncPtrImpDispatch-0f] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::xref:BloombergLP/bslmf/InvokeResult_MemFuncPtrImpDispatch-076.adoc[InvokeResult_MemFuncPtrImpDispatch]<bslmf::VoidType<decltype(((*InvokeResult_ImpUtils::myDeclval<t_ARG1TYPE>()).* InvokeResult_ImpUtils::myDeclval<t_FN>())( InvokeResult_ImpUtils::myDeclval<t_ARGTYPES>()...))>::type, false, false, t_FN, t_ARG1TYPE, t_ARGTYPES...> :relfileprefix: ../../ :mrdocs: `invoke_result` for `((*arg1).*fn)(args...)`. == Synopsis Declared in `<bslmf_invokeresult.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_FN, class t_ARG1TYPE, class... t_ARGTYPES> struct xref:BloombergLP/bslmf/InvokeResult_MemFuncPtrImpDispatch-076.adoc[InvokeResult_MemFuncPtrImpDispatch]<bslmf::VoidType<decltype(((*InvokeResult_ImpUtils::myDeclval<t_ARG1TYPE>()).* InvokeResult_ImpUtils::myDeclval<t_FN>())( InvokeResult_ImpUtils::myDeclval<t_ARGTYPES>()...))>::type, false, false, t_FN, t_ARG1TYPE, t_ARGTYPES...> : /* implementation-defined */ ---- == Description Implementation of `invoke_result<t_FN, t_ARG1TYPE, t_ARGTYPES...>`. This specialization is instantiated in C++11 and later when `t_FN` is a pointer‐to‐member‐function type, `t_ARG1TYPE` is neither a class type that derives from the class type of `t_FN` nor a specialization of `bsl::reference_wrapper`, and the `INVOKE(fn, arg1, args...)` expression is well‐formed given `fn` is an object of the specified `t_FN` type and `arg1, args...` are objects of the specified `t_ARG1TYPE, t_ARGTYPES...` types. The `INVOKE(fn, arg1, args...)` expression in this case is `((*arg1).*fn)(args...)`. == 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_MemFuncPtrImpDispatch-0f/AnyLvalue.adoc[`AnyLvalue`] | Type convertible from any lvalue type. Used for overload resolution in metafunctions. | xref:BloombergLP/bslmf/InvokeResult_MemFuncPtrImpDispatch-0f/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_MemFuncPtrImpDispatch-0f/type.adoc[`type`] | `INVOKE` result type for `((*arg1).*fn)(args...)`. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmf/InvokeResult_MemFuncPtrImpDispatch-0f/checkConst-09.adoc[`checkConst`] | `checkConst` overloads | xref:BloombergLP/bslmf/InvokeResult_MemFuncPtrImpDispatch-0f/checkLvalue-0b.adoc[`checkLvalue`] | `checkLvalue` overloads | xref:BloombergLP/bslmf/InvokeResult_MemFuncPtrImpDispatch-0f/checkVolatile-0b.adoc[`checkVolatile`] | `checkVolatile` overloads | xref:BloombergLP/bslmf/InvokeResult_MemFuncPtrImpDispatch-0f/myDeclval.adoc[`myDeclval`] | Return a `declval` reference for unevaluated metaprogramming. | xref:BloombergLP/bslmf/InvokeResult_MemFuncPtrImpDispatch-0f/uncv-0a.adoc[`uncv`] | `uncv` overloads | xref:BloombergLP/bslmf/InvokeResult_MemFuncPtrImpDispatch-0f/unpoint-0e.adoc[`unpoint`] | `unpoint` overloads |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#