Я читаю "Эффективный С++ 55" Скотта Мейерса и задаю вопрос из пункта 49:
Когда operator new
не может выполнить запрос памяти, он вызывает
new-handler, пока не найдет достаточно памяти.
Хорошо спроектированная функция newhandler должна выполнить одно из следующих действий:
- Сделайте больше доступной памяти.
- Установите другой новый обработчик.
- Удалите новый обработчик
- Выбросить исключение
- Не возвращать
Когда new
не может выделить память, это означает, что памяти недостаточно, и вопрос в том, как и откуда может новый дескриптор выделить больше памяти?
Можете ли вы объяснить все эти шаги?