От 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;
Ничего из этого не поможет …
Так как вы используете Boost, вы можете использовать boost::remove_pointer
чтобы получить указательный тип.
boost::remove_pointer<boost::ptr_vector<T>::value_type>::type
будет оценивать T
,
Если вы можете использовать функции C ++ 11, вы можете использовать std::remove_pointer
так же, как версия Boost.
Если вы можете использовать C ++ 11, станд :: remove_pointer на value_type
должен сделать работу.