0

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;

这些都没有帮助...

4

2 回答 2

2

如果您可以使用 C++11,则 std::remove_pointer onvalue_type应该可以完成这项工作。

于 2014-05-28T17:41:17.903 回答
2

由于您使用的是 Boost,因此您可以使用boost::remove_pointer来获取指向的类型。

boost::remove_pointer<boost::ptr_vector<T>::value_type>::type

将评估为T

如果您可以使用 C++11 功能,则可以使用std::remove_pointer与 Boost 版本相同的方式。

于 2014-05-28T17:42:46.060 回答