[#BloombergLP-bslmf-InvokeResult_MemPtrArgQualifiers-02] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::xref:BloombergLP/bslmf/InvokeResult_MemPtrArgQualifiers-0c.adoc[InvokeResult_MemPtrArgQualifiers]<t_MEMOF_CLASS, t_ARG_TYPE, false> :relfileprefix: ../../ :mrdocs: This metafunction determines which cv qualifiers and reference qualifiers should be propagated from the first argument of `invoke_result`. == Synopsis Declared in `<bslmf_invokeresult.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_MEMOF_CLASS, class t_ARG_TYPE> struct xref:BloombergLP/bslmf/InvokeResult_MemPtrArgQualifiers-0c.adoc[InvokeResult_MemPtrArgQualifiers]<t_MEMOF_CLASS, t_ARG_TYPE, false> : /* implementation-defined */ ---- == Description This specialization is instantiated when `t_ARG_TYPE` is not derived from `t_MEMOF_CLASS` and is assumed to be a pointer or smart pointer type. If type `A` is the result of dereferencing an object of type `t_ARG_TYPE`, then the constant `k_IS_LVALUE` is true iff `A` is an lvalue reference; the constant `k_IS_CONST` is true iff `A` is a const‐qualified reference; and the constant `k_IS_VOLATILE` is true iff `A` is a volatile‐qualified reference. == 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_MemPtrArgQualifiers-02/AnyLvalue.adoc[`AnyLvalue`] | Type convertible from any lvalue type. Used for overload resolution in metafunctions. | xref:BloombergLP/bslmf/InvokeResult_MemPtrArgQualifiers-02/AnyRvalue.adoc[`AnyRvalue`] | Type convertible from any rvalue type. Used for overload resolution in metafunctions. |=== == Enums [cols="1"] |=== | Name | xref:BloombergLP/bslmf/InvokeResult_MemPtrArgQualifiers-02/_04enum.adoc[`Unnamed enum`] |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmf/InvokeResult_MemPtrArgQualifiers-02/checkConst-09.adoc[`checkConst`] | `checkConst` overloads | xref:BloombergLP/bslmf/InvokeResult_MemPtrArgQualifiers-02/checkLvalue-06.adoc[`checkLvalue`] | `checkLvalue` overloads | xref:BloombergLP/bslmf/InvokeResult_MemPtrArgQualifiers-02/checkVolatile-02.adoc[`checkVolatile`] | `checkVolatile` overloads | xref:BloombergLP/bslmf/InvokeResult_MemPtrArgQualifiers-02/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_MemPtrArgQualifiers-02/uncv-03.adoc[`uncv`] | `uncv` overloads | xref:BloombergLP/bslmf/InvokeResult_MemPtrArgQualifiers-02/unpoint-03.adoc[`unpoint`] | `unpoint` overloads |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#