[#BloombergLP-bslmf-InvokeResult_MemObjPtrImpDispatch-05-unpoint-0a]
= 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;]::unpoint
:relfileprefix: ../../../
:mrdocs:

`unpoint` overloads

== Synopses

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

If the argument type `t&lowbar;TP` is pointer to type `X`, where `X` is not cv&hyphen;`void`, return a reference to `X`&semi; otherwise return a reference to `t&lowbar;TP`&period; Note that these functions are declared but not defined and are intended to be called only in an unevaluated context&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TP&gt;
static
t&lowbar;TP&
xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/unpoint-02.adoc[unpoint](t&lowbar;TP&);
----

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

Same as the other `unpoint` overloads, for `const t&lowbar;TP&amp;`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TP&gt;
static
t&lowbar;TP const&
xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/unpoint-07e.adoc[unpoint](t&lowbar;TP const&);
----

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

Same as the other `unpoint` overloads, for `t&lowbar;TP &ast;&amp;`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TP&gt;
static
t&lowbar;TP&
xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/unpoint-0e8.adoc[unpoint](t&lowbar;TP*&)
requires !bsl&colon;&colon;is&lowbar;void&lt;t&lowbar;TP&gt;&colon;&colon;value;
----

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

Same as the other `unpoint` overloads, for `t&lowbar;TP &ast;volatile&amp;`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TP&gt;
static
t&lowbar;TP&
xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/unpoint-0e5.adoc[unpoint](t&lowbar;TP volatile*&)
requires !bsl&colon;&colon;is&lowbar;void&lt;t&lowbar;TP&gt;&colon;&colon;value;
----

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

Same as the other `unpoint` overloads, for `t&lowbar;TP &ast;const&amp;`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TP&gt;
static
t&lowbar;TP&
xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/unpoint-04.adoc[unpoint](t&lowbar;TP const*&)
requires !bsl&colon;&colon;is&lowbar;void&lt;t&lowbar;TP&gt;&colon;&colon;value;
----

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

Same as the other `unpoint` overloads, for `t&lowbar;TP &ast;const volatile&amp;`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TP&gt;
static
t&lowbar;TP&
xref:BloombergLP/bslmf/InvokeResult_MemObjPtrImpDispatch-05/unpoint-078.adoc[unpoint](t&lowbar;TP const volatile*&)
requires !bsl&colon;&colon;is&lowbar;void&lt;t&lowbar;TP&gt;&colon;&colon;value;
----

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


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