20 General utilities library [utilities]

20.14 Function objects [function.objects]

20.14.5 Class template reference_­wrapper [refwrap] Transformation type trait unwrap_­reference [refwrap.unwrapref]

template<class T> struct unwrap_reference;
If T is a specialization reference_­wrapper<X> for some type X, the member typedef type of unwrap_­reference<T> is X&, otherwise it is T.
template<class T> struct unwrap_ref_decay;
The member typedef type of unwrap_­ref_­decay<T> denotes the type unwrap_­reference_­t<decay_­t<T>>.