Получить параметр шаблона из boost :: ptr_vector

От 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

Решение

Так как вы используете Boost, вы можете использовать boost::remove_pointer чтобы получить указательный тип.

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

будет оценивать T,

Если вы можете использовать функции C ++ 11, вы можете использовать std::remove_pointer так же, как версия Boost.

2

Другие решения

Если вы можете использовать C ++ 11, станд :: remove_pointer на value_type должен сделать работу.

2

По вопросам рекламы [email protected]