[#BloombergLP-bslalg-NothrowMovableUtil-unwrap-0f9]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslalg.adoc[bslalg]::xref:BloombergLP/bslalg/NothrowMovableUtil.adoc[NothrowMovableUtil]::unwrap
:relfileprefix: ../../../
:mrdocs:

`unwrap` overloads

== Synopses

Declared in `&lt;bslalg&lowbar;nothrowmovableutil&period;h&gt;`

Same as the preceding overload, for movable rvalues&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class TYPE&gt;
static
xref:BloombergLP/bslmf/MovableRef.adoc[bslmf::MovableRef&lt;bslalg::NothrowMovableUtil::UnwrappedType&lt;TYPE&gt;::type&gt;]
xref:BloombergLP/bslalg/NothrowMovableUtil/unwrap-09.adoc[unwrap](xref:BloombergLP/bslmf/MovableRef_Deduced.adoc[BloombergLP::bslmf::MovableRef&lowbar;Deduced&lt;TYPE&gt;] f);
----

[.small]#xref:BloombergLP/bslalg/NothrowMovableUtil/unwrap-09.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload, for const movable rvalues&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class TYPE&gt;
static
xref:BloombergLP/bslmf/MovableRef.adoc[bslmf::MovableRef&lt;bslalg::NothrowMovableUtil::UnwrappedType&lt;TYPE&gt;::type const&gt;]
xref:BloombergLP/bslalg/NothrowMovableUtil/unwrap-0fd.adoc[unwrap](xref:BloombergLP/bslmf/MovableRef_Deduced.adoc[BloombergLP::bslmf::MovableRef&lowbar;Deduced&lt;TYPE const&gt;] f);
----

[.small]#xref:BloombergLP/bslalg/NothrowMovableUtil/unwrap-0fd.adoc[_» more&period;&period;&period;_]#

Return a reference to the object wrapped in the specified `f` object&period; If `f` is not wrapped, simply return a reference to `f`&period; Note that the overloads taking an lvalue argument prevent the overload taking an rvalue argument from treating the argument as a forwarding reference&period; The return type is chosen so both the value category and constness of the parameter are preserved even in the case of const rvalue references&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class TYPE&gt;
static
bslalg::NothrowMovableUtil::UnwrappedType&lt;TYPE&gt;::type&
xref:BloombergLP/bslalg/NothrowMovableUtil/unwrap-02.adoc[unwrap](TYPE& f);
----

[.small]#xref:BloombergLP/bslalg/NothrowMovableUtil/unwrap-02.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload, for const lvalues&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class TYPE&gt;
static
bslalg::NothrowMovableUtil::UnwrappedType&lt;TYPE&gt;::type const&
xref:BloombergLP/bslalg/NothrowMovableUtil/unwrap-01.adoc[unwrap](TYPE const& f);
----

[.small]#xref:BloombergLP/bslalg/NothrowMovableUtil/unwrap-01.adoc[_» more&period;&period;&period;_]#


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