[#BloombergLP-bslmf-InvokeResult_MemFuncPtrImpDispatch-0f-unpoint-03f]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::xref:BloombergLP/bslmf/InvokeResult_MemFuncPtrImpDispatch-0f.adoc[InvokeResult&lowbar;MemFuncPtrImpDispatch&lt;bslmf::VoidType&lt;decltype(((&ast;InvokeResult&lowbar;ImpUtils&colon;&colon;myDeclval&lt;t&lowbar;ARG1TYPE&gt;())&period;&ast;
                  InvokeResult&lowbar;ImpUtils&colon;&colon;myDeclval&lt;t&lowbar;FN&gt;())(
                    InvokeResult&lowbar;ImpUtils&colon;&colon;myDeclval&lt;t&lowbar;ARGTYPES&gt;()&period;&period;&period;))&gt;::type, false, false, t&lowbar;FN, t&lowbar;ARG1TYPE, t&lowbar;ARGTYPES&period;&period;&period;&gt;]::unpoint
:relfileprefix: ../../../
:mrdocs:

Dereference a pointer type for metaprogramming (declared only)&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TP&gt;
static
t&lowbar;TP&
unpoint(t&lowbar;TP& arg);
----

== Description

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;

== Parameters

[cols="1,4"]
|===
| Name| Description
| *arg*
| expression that is returned unchanged when not a pointer
|===


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