[#BloombergLP-bdlf-MemFn_Dereference-derefImp-06]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlf.adoc[bdlf]::xref:BloombergLP/bdlf/MemFn_Dereference.adoc[MemFn&lowbar;Dereference]::derefImp
:relfileprefix: ../../../
:mrdocs:

`derefImp` overloads

== Synopses

Declared in `&lt;bdlf&lowbar;memfn&period;h&gt;`

Return a reference to the specified `obj` when it does not have pointer semantics&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
OBJTYPE&
xref:BloombergLP/bdlf/MemFn_Dereference/derefImp-05.adoc[derefImp](
    OBJTYPE& obj,
    xref:bsl/false_type.adoc[bsl::false&lowbar;type]* tag);
----

[.small]#xref:BloombergLP/bdlf/MemFn_Dereference/derefImp-05.adoc[_» more&period;&period;&period;_]#

Dereference the specified `obj` when it has pointer semantics&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class TYPE&gt;
static
OBJTYPE&
xref:BloombergLP/bdlf/MemFn_Dereference/derefImp-0d.adoc[derefImp](
    TYPE& obj,
    xref:bsl/true_type.adoc[bsl::true&lowbar;type]* tag);
----

[.small]#xref:BloombergLP/bdlf/MemFn_Dereference/derefImp-0d.adoc[_» more&period;&period;&period;_]#

Dereference the specified `obj` when it has pointer semantics&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class TYPE&gt;
static
OBJTYPE&
xref:BloombergLP/bdlf/MemFn_Dereference/derefImp-03.adoc[derefImp](
    TYPE const& obj,
    xref:bsl/true_type.adoc[bsl::true&lowbar;type]* tag);
----

[.small]#xref:BloombergLP/bdlf/MemFn_Dereference/derefImp-03.adoc[_» more&period;&period;&period;_]#

== Return Value

* reference to `obj`
* reference obtained by dereferencing `obj`

== Parameters

[cols="1,4"]
|===
| Name| Description
| *obj*
| object to return by reference
| *tag*
| tag indicating the object does not have pointer semantics
|===


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