Эти функции зарезервированы; программа на C ++ может не определять функции, заменяющие версии в стандартной библиотеке C ++ ([constraints]). Положения [basic.stc.dynamic] не применяются к этим формам зарезервированного размещения operator new и operator delete.
void* operator new(std::size_t size, void* ptr) noexcept;
[ Example: Это может быть полезно для создания объекта по известному адресу:
void* place = operator new(sizeof(Something)); Something* p = new (place) Something();
— end example ]
void* operator new[](std::size_t size, void* ptr) noexcept;
void operator delete(void* ptr, void*) noexcept;
Requires: Если у реализации есть, strict pointer safety то ptr должен быть безопасный указатель.
Remarks: Функция по умолчанию new-expressionвызывается, когда любая часть инициализации в размещении, которая вызывает библиотечный оператор размещения без массива new, завершается выдачей исключения ([expr.new]).
void operator delete[](void* ptr, void*) noexcept;
Requires: Если у реализации есть, strict pointer safety то ptr должен быть безопасный указатель.
Remarks: Функция по умолчанию new-expressionвызывается, когда любая часть инициализации в размещении, которая вызывает библиотечный оператор размещения массива new, завершается выдачей исключения ([expr.new]).