背景:
c++标准库里边很多地方都用到了decay,网上也有很多资料也介绍了decay,大多都是讲怎么用,没有从源码分析,类型退化的用法以及源码分析
std::decay demo
C++ #include <type_traits> template <typename T, typename U> struct decay_equiv : std::is_same<typename std::decay<T>::type, U>::type {}; template <typename T, typename U> constexpr bool is_decay_equ = decay_equiv<T, U>::value; int main() {
static_assert( is_decay_equ<int, int> && ! is_decay_equ<int, float> && is_decay_equ<int&, int> && is_decay_equ<int&&, int> && is_decay_equ<const int&, int> && is_decay_equ<int[2], int*> && |