[#BloombergLP-bslmf-IsReferenceWrapper-0e]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::IsReferenceWrapper
:relfileprefix: ../../
:mrdocs:

Metafunction for detecting reference wrappers&period;

== Synopsis

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

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

== Description

This `struct` template implements a boolean metafunction used to detect if the specified `t&lowbar;TYPE` is a reference wrapper&period; Clients may specialize this `struct` template to inherit from `bsl&colon;&colon;true&lowbar;type` for `t&lowbar;TYPE` types that are specializations of `bsl&colon;&colon;reference&lowbar;wrapper`&period; The behavior is undefined if any other specialization of this `struct` template is defined&period;

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:bsl/false_type.adoc[bsl::false&lowbar;type]`
| Metafunction representing the boolean constant `false`&period;
|===

== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmf/IsReferenceWrapper-01.adoc[`IsReferenceWrapper&lt;bsl::reference&lowbar;wrapper&lt;T&gt;&gt;`] 
| This partial specialization of `IsReferenceWrapper` derives from `bsl&colon;&colon;true&lowbar;type` for when the (template parameter) type is a `bsl&colon;&colon;reference&lowbar;wrapper`&period;
|===



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