вот всем хорошо использование forward деклараций классов. жаль только нельзя без включения описания класса сделать приведение типа указателя к базовому.
Да не всем оно хорошо. delete p, например, по стандарту можно делать, даже если тип p не определен в точке вызова, а всего лишь декларирован. Но если у p своя реализация delete или нетривиальный деструктор, то UB.
Да не всем оно хорошо. delete p, например, по стандарту можно делать, даже если тип p не определен в точке вызова, а всего лишь декларирован. Но если у p своя реализация delete или нетривиальный деструктор, то UB.
З.Ы. boost::checked_delete
а нехуй делать delete. для кого умные поинтеры придумали?
Я не делаю, я руководствуюсь стандартом :)
Умных указателя по сути только два: unique_ptr и intruisive_ptr, остальное больше костылями попахивает.