0xd34df00d
03.07.2011 15:06 Azoth_primary
C++ — это такой источник адреналина годный. Делаю даункаст по иерархии объекта внутри деструктора его базового класса (что, вообще говоря, UB), но должно сработать, ибо я потом просто пройдусь по списком std::remove'ом и удалю элемент, соответствующий этому. А методы дергать не буду, поэтому на vtbl объекта в частности и на его состояние вообще как-то насрать.
это не адреналин, это извращение
Почему?
looks like. Всё равно приведение к левому типу выглядит опасно, даже если юзать не будешь.
Он не левый, он просто уже как объект этого типа уже не существует.
рискуешь получить гонку процессов. Хуже ничего нет.
Из какого это места это вытекает?
хм, пожалуй да, нету. Запутался от "как объект этого типа не существует".
зачем такое делать?
Вместо
Q_FOREACH (Highlighter *hl, Highlighters_)
if (hl == sender ())
{
Highlighters_.removeAll (hl);
break;
}
писать
Highlighters_.removeAll (static_cast<Highlighter*> (sender ()));