Determine if a type `T` is an instantiation of ``reference_wrapper``.

The value static constant will be true if the type `T` is a specialization of ``reference_wrapper``.

bool
value
false
Contains a reference to an object of type `T`.

``reference_wrapper`` is primarily used to "feed" references to function templates (algorithms) that take their parameter by value. It provides an implicit conversion to `T&`, which usually allows the function templates to work on references unmodified.

Type `T`.

T
T &

Does not throw.

The stored reference.

T &

Does not throw.

The stored reference.

T *

Does not throw.

A pointer to the object referenced by the stored reference.

T &

Constructs a ``reference_wrapper`` object that stores a reference to `t`.

Does not throw.

T &&

Construction from a temporary object is disabled.

reference_wrapper
< Y >
unspecified
unspecified

Constructs a ``reference_wrapper`` object that stores the reference stored in the compatible ``reference_wrapper`` `r`.

Only enabled when `Y*` is convertible to `T*`.

Does not throw.

Find the type in a ``reference_wrapper``.

The `typedef` type is `T::type` if `T` is a ``reference_wrapper``, `T` otherwise.

T
`reference_wrapper`< T > const `T &`

Does not throw.

``reference_wrapper`<T>(t)`

`reference_wrapper`< T const > const `T const &`

Does not throw.

``reference_wrapper`<T const>(t)`

void `T const &&`

Construction from a temporary object is disabled.

void `T const &&`

Construction from a temporary object is disabled.

`unwrap_reference`< T >::type & `T &`

Does not throw.

``unwrap_reference`<T>::type&(t)`