[replacement.functions] (original) (raw)

[support] through [thread] and [depr]describe the behavior of numerous functions defined by the C++ standard library.

Under some circumstances,however, certain of these function descriptions also apply to replacement functions defined in the program ([definitions]).

A C++ program may provide the definition for any of the following dynamic memory allocation function signatures declared in header<new> ([basic.stc.dynamic], [new.syn]):

operator new(std::size_t) operator new(std::size_t, std::align_val_t) operator new(std::size_t, const std::nothrow_t&) operator new(std::size_t, std::align_val_t, const std::nothrow_t&)

operator delete(void*) operator delete(void*, std::size_t) operator delete(void*, std::align_val_t) operator delete(void*, std::size_t, std::align_val_t) operator delete(void*, const std::nothrow_t&) operator delete(void*, std::align_val_t, const std::nothrow_t&)

operator new operator new[](std::size_t, std::align_val_t) operator new[](std::size_t, const std::nothrow_t&) operator new[](std::size_t, std::align_val_t, const std::nothrow_t&)

operator delete operator delete[](void*, std::size_t) operator delete[](void*, std::align_val_t) operator delete[](void*, std::size_t, std::align_val_t) operator delete[](void*, const std::nothrow_t&) operator delete[](void*, std::align_val_t, const std::nothrow_t&)

The program's definitions are used instead of the default versions supplied by the implementation ([new.delete]).

The program's declarations shall not be specified asinline.

No diagnostic is required.