условия задачи
есть некая структура(класс) списков
class Singl
{
Singl *Next;
static Singl *This;
~Singl() { if (Next) delete Next; };
static Singl *Init()
{
//.... инициалицация This,Next... итд
};
};
Singl *Singl::This = 0;
1) после завершения программы нужно сделать if (Singl::This) delete Singl::This;
для автоматического очистки списка
недолго думая набросал класс дестроер указателя
template <typename T>
class auto_delete_ptr
{
T **ptr;
public:
auto_delete_ptr(T **p) { ptr = p;};
~auto_delete_ptr() { if (*ptr) delete *ptr; };
};
и далее в .cpp модуле
static auto_delete_ptr autoDel(&Singl::This);
есть ли другие более стандартные варианты?