Есть три функции
void operator delete(void * hPointer);
void operator delete(void * hPointer, size_t ulSize);
void operator delete[](void * hPointer, size_t ulSize);
которые вызывают один и тот же код. Для примера (и только для примера):
{
hPointer=nullptr;
return;
}
Можно было бы скопировать код для каждой функции, но лучше бы использовать систему псевдонимов. То есть для любого delete обязана вызываться одна и та же функция. Использование директив препроцессора исключено, потому что сигнатуры функций разные.
Просто вызывайте первую функцию из остальных, и не будет [почти] никакого повторения кода
void operator delete(void * hPointer)
{
// Общая реализация
}
void operator delete(void * hPointer, size_t ulSize)
{
operator delete(hPointer);
}
void operator delete[](void * hPointer, size_t ulSize)
{
operator delete(hPointer);
}
Только делать это надо правильно, т.е. с указанием имени функции. А имя это - operator delete. Подозреваю по вашему комментарию, что вы пытались делать delete hPointer во второй и третьей функции, что, разумеется, совсем не то.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости