c++提取指针的类型
C++ extract type of pointer
假设我有
typedef T* PtrType;
是否有办法从PtrType
中提取T
类型?
std::remove_pointer<PtrType>::type
如果T
是模板参数,则必须使用:
typename std::remove_pointer<PtrType>::type
在c++ 11中,您可以使用std::remove_pointer
:
std::remove_pointer<PtrType>::type
如果没有c++ 11,你可以自己简单地实现它:
template <class T>
struct remove_pointer;
template <class U>
struct remove_pointer<U*>
{
typedef U type;
};
如果T
确实是一个指针,上面的代码会从T
中移除一个指针,否则会导致编译错误。如果您想完全匹配std::remove_pointer
的功能,那么您也可以提供默认的大小写:
template <class T>
struct remove_pointer
{
typedef T type;
};
// Partial specialisation for U* same as before
相关文章:
- 非类型指针和引用模板参数,以及在编译时如何/为什么解析它们.c++
- 如何访问在 c++ 中在类内声明的结构类型指针变量?
- (C )找到基本类型指针的儿童类型
- 表达式必须具有指向对象的指针类型(指针向量)
- 将子项复制构造到父类型指针中
- C 返回类型指针声明
- 调用虚拟函数而不通过类类型指针创建任何对象
- C++ 如何使用类类型指针制作向量
- 为什么基类型指针不能获取派生类对象的地址值?
- 如何在 C++ 中获取映射类型指针,映射
- 如何检查该类型的类型指针是正确对齐的
- 正在转换为短类型指针
- 指向任意类方法的模板非类型指针
- 如何通过强制转换类型指针将字符数组转换为uint16_t
- 指向shared_ptr的不透明类型 C 指针
- C++:从值类型指针强制转换为包含迭代器
- C/C++:访问给定类型指针的位置与访问另一类型指针的相同位置不同
- 比较类型指针
- 数据类型指针使用*(Datatype *)
- 如何打印c++中char类型指针的所有值