Здравствуйте, johny5, Вы писали:
J>Ну как, есть куча способов это побороть:
J> 1. Отнаследовать их все от общего предка с виртуальным деструктором. Т.е. у вас Command должна быть имплементирована так, как у топикстартера.
J> 2. Контейнеры для перечисленных типов boost::variant
J> 3. Контейнеры для любых типов boost::shared_ptr, boost::any
J>Вам нужно отходить от фокусов с памятью и переходить на типобезопасное программирование.
Если честно я даже не думал в этом направление. Основной задачей для меня было только не засорять кучу.
vod* lpObj = new FooClass();
size_t sizeObj = sizeof(FooClass);
delete[sizeObj] lpObj;
Если бы этот кусок кода точно правильно удалял объект то я бы на нем и остановился. Так как проект не очень большой и вообще VC++ использую только для связи между C# и native OpenGL.