shared_ptr и кастинг
От: Аноним  
Дата: 10.02.04 13:25
Оценка:
есть полиморфная иерархия обьектов
struct Base
{
    virtual ~Base();
};
struct Derived : public Base {}

есть список указателей на базовые обьекты
std::list<boost::shared_ptr<Base> > my_list;

допустим я как-то получаю из этого списка необходимый мне элемент
как передать его в функцию, которая ожидает boost::shared_ptr<Derived>?
можно разименовать указатель на Base, сделать ему dynamic_cast, и если всё хорошо, создать нужный тип, но тогда потеряется счетчик и произойдет двойное удаление в деструкторе list.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.