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

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;

== 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 Decay
    : xref:BloombergLP/bslmf/MovableRefUtil_Decay.adoc[MovableRefUtil&lowbar;Decay&lt;t&lowbar;TYPE&gt;]
----

== Description

Formally, let `U` be `MovableRefUtil&colon;&colon;RemoveReference&lt;t&lowbar;TYPE&gt;&colon;&colon;type`&period; If `bsl&colon;&colon;is&lowbar;array&lt;U&gt;&colon;&colon;value` is true, the member typedef `type` is `bsl&colon;&colon;remove&lowbar;extent&lt;U&gt;&colon;&colon;type &ast;`&period; If `bsl&colon;&colon;is&lowbar;function&lt;U&gt;&colon;&colon;value` is true, the member typedef `type` is `bsl&colon;&colon;add&lowbar;pointer&lt;U&gt;&colon;&colon;type`&period; Otherwise, the member typedef `type` is `bsl&colon;&colon;remove&lowbar;cv&lt;U&gt;&colon;&colon;type`&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bslmf/MovableRefUtil_Decay.adoc[MovableRefUtil&lowbar;Decay&lt;t&lowbar;TYPE&gt;]`
| forward declaration
|===

== 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;
|===



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