为类型T应用从左值到右值(lvalue-to-rvalue)、数组到指针(array-to-pointer)和函数到指针(function-to-pointer)的隐式转换。转换将移除类型T的cv限定符(const和volatile),并定义结果类型为 decay< T >::type。这种转换很类似于函数参数按值传递时发生的转换。有以下几种情况:
若 T 为“ U 的数组”或“到 U 的数组的引用”类型,则 decay< T >::type 为 U* 。
若 T 为函数类型 F 或到它的引用,则 decay< T >::type 为 std::add_pointer< F >::type 。
否则,decay< T >::type 为 std::remove_cv<std::remove_reference< T >::type>::type。