[#BloombergLP-bslmf-MovableRefUtil-AddLvalueReference] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::xref:BloombergLP/bslmf/MovableRefUtil.adoc[MovableRefUtil]::AddLvalueReference :relfileprefix: ../../../ :mrdocs: This `struct` template provides a metafunction that defines a nested `type` typedef that is an lvalue reference to `t_TYPE`. If `t_TYPE` is already an `lvalue` reference, then `type` is `t_TYPE`. Otherwise, if `t_TYPE` is `MovableRef<T2>`, then `type` is `T2&`. This transformation reflects the semantics of _reference collapsing_ in section [dec.ref]of the standard. == Synopsis Declared in `<bslmf_movableref.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_TYPE> struct AddLvalueReference : xref:BloombergLP/bslmf/MovableRefUtil_AddLvalueReference.adoc[MovableRefUtil_AddLvalueReference<t_TYPE>] ---- == Base Classes [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/bslmf/MovableRefUtil_AddLvalueReference.adoc[MovableRefUtil_AddLvalueReference<t_TYPE>]` | forward declaration |=== == Type Aliases [cols="1,4"] |=== | Name| Description | xref:bsl/add_lvalue_reference-0e2/type.adoc[`type`] | This `typedef` defines the return type of this meta function. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#