iso c++ 03
/2 ... if the value of the operand of delete is the null pointer the
operation has no effect.
/7 The delete-expression will call a deallocation function (184.108.40.206).
/2 ... the value of the operand of delete may be a null pointer value.
/7 If the value of the operand of the delete-expression is not a
null pointer value, the delete-expression will call a deallocation
function (220.127.116.11). Otherwise, it is unspecified whether the
deallocation function will be called. [ Note: The deallocation
function is called regardless of whether the destructor for the
object or some element of the array throws an exception. -- end note ]