C++11

// <utility>
template <class T>
    typename add_rvalue_reference<T>::type declval() noexcept;

该函数模板用于 decltype 表达式,可以将任意类型转化成一个引用类型(Reference type),再使用其成员函数以猜测类型,不管该类型是否支持默认构造函数(Default constructor)