[#BloombergLP-bslmf-InvokeResult_MemObjPtrImpDispatch-05-checkLvalue-04]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05.adoc[InvokeResult&lowbar;MemObjPtrImpDispatch&lt;bslmf::VoidType&lt;decltype((&ast;InvokeResult&lowbar;ImpUtils&colon;&colon;myDeclval&lt;t&lowbar;ARGTYPE&gt;())&period;&ast;
                 InvokeResult&lowbar;ImpUtils&colon;&colon;myDeclval&lt;t&lowbar;FN&gt;())&gt;::type, false, false, t&lowbar;FN, t&lowbar;ARGTYPE&gt;]::checkLvalue
:relfileprefix: ../../../
:mrdocs:

`checkLvalue` overloads

== Synopses

Declared in `&lt;bslmf&lowbar;invokeresult&period;h&gt;`

(Declared but not defined) Return `bslmf&colon;&colon;Tag&lt;false&gt;()` if the first argument is an rvalue and `bslmf&colon;&colon;Tag&lt;true&gt;()` if it is lvalue&period; In actual use, the second argument is always a literal `int`, which causes the second overload to be preferred in case of ambiguity&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
xref:BloombergLP/bslmf/Tag-0b.adoc[bslmf::Tag&lt;false&gt;]
xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/checkLvalue-01.adoc[checkLvalue](&sol;&ast; implementation-defined &ast;&sol;, &period;&period;&period;);
----

[.small]#xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/checkLvalue-01.adoc[_» more&period;&period;&period;_]#

Return `bslmf&colon;&colon;Tag&lt;true&gt;()` if the first argument is an lvalue&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
xref:BloombergLP/bslmf/Tag-0b.adoc[bslmf::Tag&lt;true&gt;]
xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/checkLvalue-0d.adoc[checkLvalue](
    &sol;&ast; implementation-defined &ast;&sol;,
    int);
----

[.small]#xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/checkLvalue-0d.adoc[_» more&period;&period;&period;_]#


[.small]#Created with https://www.mrdocs.com[MrDocs]#
