来自boost::ptr_vector<T>
我试图获得T
,但boost::ptr_vector<T>::value_type
似乎是T*
。我怎样才能获得T
?
查看文档,我看到了:
typedef T* value_type;
typedef T& reference;
typedef const T& const_reference;
这些都没有帮助...
答案 0 :(得分:2)
如果您可以使用C ++ 11,则value_type
上的std::remove_pointer应该可以胜任。
答案 1 :(得分:2)
由于您正在使用Boost,因此您可以使用boost::remove_pointer
来获取指向类型。
boost::remove_pointer<boost::ptr_vector<T>::value_type>::type
将评估为T
。
如果您可以使用C ++ 11功能,则可以像Boost版本一样使用std::remove_pointer
。