如何在C ++中删除所有类型的信息?

时间:2012-02-09 11:59:44

标签: c++ types

假设我有static const int*constconst int&。我需要结果int才能在模板中使用。如何删除所有数据并获得简单的int

2 个答案:

答案 0 :(得分:6)

decayremove_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;
};

请参阅http://ideone.com/ZNFkm