[#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: Propagate cv and reference qualifiers from a dereferenced `invoke` argument. == 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 metafunction determines which cv qualifiers and reference qualifiers should be propagated from the first argument of `invoke_result`. 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,4"] |=== | Name| Description | xref:BloombergLP/bslmf/InvokeResult_MemPtrArgQualifiers-02/_04enum.adoc[`Unnamed enum`] | Qualifier constants inferred by dereferencing the first `invoke` argument. |=== == 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 `declval` reference for unevaluated metaprogramming. | 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]#