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_指针
<代码>标准::删除指针hastypedef 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