[#BloombergLP-bslmf-InvokeResult_MemObjPtrImpDispatch-05] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-0d.adoc[InvokeResult_MemObjPtrImpDispatch]<bslmf::VoidType<decltype((*InvokeResult_ImpUtils::myDeclval<t_ARGTYPE>()).* InvokeResult_ImpUtils::myDeclval<t_FN>())>::type, false, false, t_FN, t_ARGTYPE> :relfileprefix: ../../ :mrdocs: Implementation of `invoke_result<t_FN, t_ARGTYPE>`. This specialization is instantiated in C++11 and later when `t_FN` is a pointer‐to‐member‐object type, `t_ARGTYPE` 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, arg)` expression is well‐formed given `fn` is an object of the specified `t_FN` type and `arg` is an object of the specified `t_ARGTYPE` type. The `INVOKE(fn, arg)` expression in this case is `(*arg).*fn`. == Synopsis Declared in `<bslmf_invokeresult.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_FN, class t_ARGTYPE> struct xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-0d.adoc[InvokeResult_MemObjPtrImpDispatch]<bslmf::VoidType<decltype((*InvokeResult_ImpUtils::myDeclval<t_ARGTYPE>()).* InvokeResult_ImpUtils::myDeclval<t_FN>())>::type, false, false, t_FN, t_ARGTYPE> : /* 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_MemObjPtrImpDispatch-05/AnyLvalue.adoc[`AnyLvalue`] | Type convertible from any lvalue type. Used for overload resolution in metafunctions. | xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/AnyRvalue.adoc[`AnyRvalue`] | Type convertible from any rvalue type. Used for overload resolution in metafunctions. |=== == Type Aliases [cols="1"] |=== | Name | xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/type.adoc[`type`] |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/checkConst-08.adoc[`checkConst`] | `checkConst` overloads | xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/checkLvalue-04.adoc[`checkLvalue`] | `checkLvalue` overloads | xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/checkVolatile-09.adoc[`checkVolatile`] | `checkVolatile` overloads | xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/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_MemObjPtrImpDispatch-05/uncv-01.adoc[`uncv`] | `uncv` overloads | xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/unpoint-0a.adoc[`unpoint`] | `unpoint` overloads |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#