我可以通过类型特征确定指针是否是整数类型?

时间:2011-09-05 18:14:36

标签: c++ typetraits

通过使用类型特征,我可以找出类型是整数还是指针(以及更多)。是否也可以确定传递的指针是否是整数数据类型(int, float ,char)而不是对象?

编辑:除了Armen's回答之外,如果有人使用LOKI库而不是Boost,则remove pointer的功能类似于TypeTraits::PointeeType < / p>

2 个答案:

答案 0 :(得分:4)

boost::is_pointer<T>::value &&
boost::is_integral<boost::remove_pointer<T>::type>::value

Btw float不是不可或缺的。您可能需要is_arithmetic

答案 1 :(得分:0)

template <typename T>
struct IsPointerToInt {
    static const bool value = false;
};

template <>
struct IsPointerToInt<int *> {
    static const bool value = true;
};

// ... other specializations for the types you are interested in ...