Each deallocation function shall return
void. If the function is a destroying operator delete
declared in class type
C,
the type of its first parameter shall be
C*;
otherwise, the type of its first
parameter shall be
void*. A deallocation function may have more
than one parameter
. A
usual deallocation function is a deallocation function
whose parameters after the first are
- optionally, a parameter of type std::destroying_delete_t, then
- optionally, a parameter of type std::size_t,
then
- optionally, a parameter of type std::align_val_t.
A destroying operator delete shall be a usual deallocation function
. A deallocation function may be an instance of a function
template
. Neither the first parameter nor the return type shall depend
on a template parameter
. A deallocation
function template shall have two or more function parameters
. A template
instance is never a usual deallocation function, regardless of its
signature
.