假设我有static const int*const
或const int&
。我需要结果int
才能在模板中使用。如何删除所有数据并获得简单的int
?
答案 0 :(得分:6)
decay
和remove_pointer
的组合:
#include <type_traits>
typedef typename std::remove_pointer<typename std::decay<T>::type>::type TStrip;
答案 1 :(得分:4)
这样可以解决问题:
template <typename T>
struct strip
{
typedef T type;
};
template <typename T>
struct strip<const T&>
{
typedef T type;
};
template <typename T>
struct strip<const T* const>
{
typedef T type;
};