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
.