Re[2]: enable_shared_from_this<> и удаление наследников
От: uzhas Ниоткуда  
Дата: 28.09.16 09:24
Оценка: +3
Здравствуйте, szag, Вы писали:

S>ИМХО, тут все точно так же как и при обычном наследовании и использовании указателя на базовый класс — нужен виртуальный деструктор, а иначе UB. Сам по себе enable_shared_from_this не делает виртуальных деструкторов.


ну почему же
здесь вполне может быть все интереснее

struct user_context: session {};
shared_ptr<session> p(new user_context()); // deleter is captured here, he knows real type is user_context


мы ведь помним, что shared_from_this() работает только после того, как объект уже положили в некоторый shared_ptr и там же уже сидит некоторый deleter. если deleter не приводит к UB, то все окей
вопрос (или ответ) в целом никак не связан с наследованием от std::enable_shared_from_this
Отредактировано 28.09.2016 9:30 uzhas . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.