[#BloombergLP-bslmf-MovableRefUtil_Decay]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::MovableRefUtil&lowbar;Decay
:relfileprefix: ../../
:mrdocs:

forward declaration

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TYPE&gt;
struct MovableRefUtil&lowbar;Decay
    : xref:bsl/decay.adoc[bsl::decay&lt;t&lowbar;TYPE&gt;]
----

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:bsl/decay.adoc[bsl::decay&lt;t&lowbar;TYPE&gt;]`
| Metafunction to return the variant of the specified parameter `t&lowbar;TYPE` used for pass&hyphen;by&hyphen;reference, e&period;g&period;, by applying array&hyphen;to&hyphen;pointer and function&hyphen;to&hyphen;pointer conversion&period;
|===

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:bsl/decay/type.adoc[`type`] 
| This `typedef` is an alias to the decayed form of `t&lowbar;TYPE`&period;
|===


== Derived Classes

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmf/MovableRefUtil/Decay.adoc[`Decay`] 
| This `struct` template provides a metafunction that defines a nested `type` typedef that applies lvalue&hyphen;to&hyphen;rvalue, array&hyphen;to&hyphen;pointer, and function&hyphen;to&hyphen;pointer conversions that occur when an lvalue of type `t&lowbar;TYPE` is used as an rvalue, and also removes `const`, `volatile`, and reference qualifiers from class types in order to model by&hyphen;value argument passing&period; For the purpose of this type trait, `MovableRef&lt;T&gt;` is considered a (movable) reference&hyphen;qualified `T`&period;
|===


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