C++(11):通过is_same检查类型,decay退化类型_c++ decay-CSDN博客
介绍了如果通过decay退去类型的修饰符。
C++20提供了更为彻底的类型退化remove_cvref_t,可以去除掉类型的const,引用,以及右值:
#include <type_traits>
#include <iostream>
using namespace std;int main()
{cout<<is_same<std::remove_cvref_t<int>, int>::value<<endl;cout<<is_same<std::remove_cvref_t<const int>, int>::value<<endl;cout<<is_same<std::remove_cvref_t<const int&>, int>::value<<endl;cout<<is_same<std::remove_cvref_t<const int&&>, int>::value<<endl;return 0;
}
运行程序输出:
1
1
1
1