Я думаю, вы беспокоитесь о не связанных вещах.Новый обработчик - это деталь, которая определяет, как operator new
работает в случае, если ему не удается найти достаточно памяти для выделения.Интеллектуальный указатель - это предоставляемый библиотекой контейнерный класс.Большинству контейнеров стандартной библиотеки C ++ необходимо выделять память, что они делают модульно с помощью класса распределителя.Распределитель по умолчанию может (и обычно делает) использовать new
для получения памяти, но процесс выделения памяти и построения объекта не связан, и в любом классе библиотеки нет ничего, что могло бы знать какие-либо подробности о том, как работает оператор new
и наоборот.
Так что, что бы вы ни делали со своим оператором new
(например, устанавливая обработчики), будет прозрачно работать для стандартных конструкций библиотеки, и ни одна из сторон не должна знать о другой.