Как известно, стандарт C++ определяет две формы глобальных функций распределения:
void* operator new(size_t);
void* operator new[](size_t);
Кроме того, в проекте C++ стандарта (18.6.1.2 n3797) говорится:
227). Не несет ответственности оператора new или оператора delete, чтобы отметить количество повторений или размер элемента массива. Эти операции выполняются в другом месте в новых и удаленных выражениях массива. Новое выражение массива может, однако, увеличить аргумент размера для оператора new, чтобы получить пространство для хранения дополнительной информации.
Меня смущает:
Что делать, если мы удалим void* operator new[](size_t);
от стандарта, и просто использовать void* operator new(size_t)
вместо этого? Какое обоснование для определения избыточной глобальной функции распределения?