Я просто отвечал на вопрос об отсутствии места размещения, который соответствует новому месту размещения. Причина, по-видимому, заключается в том, что метод operator delete
вызывается в соответствии с динамическим типом объекта (соответствующий типу, используемому для поиска operator new
).
Размещение new
было полезно для меня. Когда речь заходит о пользовательском распределении, вероятно, существует класс повторного использования, в котором разные экземпляры управляют разными пулами. Синглтоны - это анти-шаблон и все такое.
Я понимаю удобство работы new thing;
, не отслеживая распределитель, но выполнение вещей для разных ветвей иерархии типов кажется довольно запутанным.
Существует ли реальный сценарий, в котором производный класс использует другой базовый блок распределения и полагается на виртуальный деструктор, чтобы найти правильный член operator delete
?
Чтобы это было субъективно, я приму ответ, который наиболее правдоподобен. Не позволяйте провалять запахи кода или "лучший" способ делать вещи.