C++ C++;指针的提取类型

C++ C++;指针的提取类型,c++,pointers,typedef,C++,Pointers,Typedef,让我们假设我有 typedef T* PtrType; 有没有办法从PtrType类型中提取T? 如果T是模板参数,则必须使用: typename std::remove_pointer::type在C++11中,您可以使用: 您的答案没有实现std::remove_指针标准::删除指针hastypedef T type如果T不是指针类型。有关std::remove\u pointer的正确可能实现,请参阅。为方便起见:使用remove\u pointer\u t=typename std::

让我们假设我有

typedef T* PtrType;
有没有办法从
PtrType
类型中提取
T

如果
T
是模板参数,则必须使用:

typename std::remove_pointer::type

在C++11中,您可以使用:


您的答案没有实现
std::remove_指针
<代码>标准::删除指针has
typedef T type如果
T
不是指针类型。有关
std::remove\u pointer
的正确可能实现,请参阅。为方便起见:
使用remove\u pointer\u t=typename std::remove\u pointer::type的模板
您的意思是使用remove\u pointer\u t=typename std::remove\u pointer::type的
模板?事实上,我的意思是使用remove\u pointer\u t=typename std::remove\u pointer::type的
模板和其他打字错误(
T
/
PtrType
)已修复。谢谢。我整天都在努力说服
decltype(array[0])
不要返回左值引用类型。非常适用于
std::remove\u pointer::type
。最后救济
std::remove_pointer<PtrType>::type
template <class T>
struct remove_pointer;

template <class U>
struct remove_pointer<U*>
{
  typedef U type;
};
template <class T>
struct remove_pointer
{
  typedef T type;
};

// Partial specialisation for U* same as before