Я унаследовал неизменную структуру C, которая содержит указатели на (alloc'd) память.
typedef struct {
int id;
int * val;
} T;
Я хотел бы использовать new и delete для этих объектов, и мне было интересно, возможно липерегрузить удалить в глобальной области видимости.У меня нет возможности переписать структуру / класс в первую очередь.Проблема в том, что я не могу найти правильную грамматику.Это то, что у меня есть - оно компилируется, но, очевидно, не работает, поскольку функция применяется ко всем вызовам удаления:
void operator delete(void*p) throw() {
T * t = reinterpret_cast<T*>(p);
free(p->val);
}
Я пытаюсь сделать невозможное?Я читал, что перегрузка удаления оператора не обязательно должна быть функцией-членом, но предоставляет ли это средство для написания общего удаления для всех указателей?