21 Language support library [language.support]

21.6 Dynamic memory management [support.dynamic]

21.6.2 Storage allocation and deallocation [new.delete]

21.6.2.3 Non-allocating forms [new.delete.placement]

Эти функции зарезервированы; программа на C ++ может не определять функции, заменяющие версии в стандартной библиотеке C ++ ([constraints]). Положения [basic.stc.dynamic] не применяются к этим формам зарезервированного размещения operator new и operator delete.

void* operator new(std::size_t size, void* ptr) noexcept;

Returns: ptr.

Remarks: Умышленно не выполняет никаких других действий.

[ Example: Это может быть полезно для создания объекта по известному адресу:

void* place = operator new(sizeof(Something));
Something* p = new (place) Something();

end example]

void* operator new[](std::size_t size, void* ptr) noexcept;

Returns: ptr.

Remarks: Умышленно не выполняет никаких других действий.

void operator delete(void* ptr, void*) noexcept;

Effects: Умышленно не выполняет никаких действий.

Requires: Если у реализации есть, strict pointer safety то ptr должен быть безопасный указатель.

Remarks: Функция по умолчанию new-expressionвызывается, когда любая часть инициализации в размещении, которая вызывает библиотечный оператор размещения без массива new, завершается выдачей исключения ([expr.new]).

void operator delete[](void* ptr, void*) noexcept;

Effects: Умышленно не выполняет никаких действий.

Requires: Если у реализации есть, strict pointer safety то ptr должен быть безопасный указатель.

Remarks: Функция по умолчанию new-expressionвызывается, когда любая часть инициализации в размещении, которая вызывает библиотечный оператор размещения массива new, завершается выдачей исключения ([expr.new]).