This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of CD1 status.
Section: 184.108.40.206 [new.delete.array] Status: CD1 Submitter: John A. Pedretti Opened: 2001-01-10 Last modified: 2016-02-10
Priority: Not Prioritized
View all issues with CD1 status.
The default behavior of operator delete described in 220.127.116.11, p12 - namely that for non-null value of ptr, the operator reclaims storage allocated by the earlier call to the default operator new - is not correct in all cases. Since the specified operator new default behavior is to call operator new (18.104.22.168, p4, p8), which can be replaced, along with operator delete, by the user, to implement their own memory management, the specified default behavior of operator delete must be to call operator delete.
Change 22.214.171.124, p12 from
-12- Default behavior:
- For a null value of ptr , does nothing.
- Any other value of ptr shall be a value returned earlier by a call to the default operator new(std::size_t). [Footnote: The value must not have been invalidated by an intervening call to operator delete(void*) (126.96.36.199 [res.on.arguments]). --- end footnote] For such a non-null value of ptr , reclaims storage allocated by the earlier call to the default operator new.
-12- Default behavior: Calls operator delete(ptr) or operator delete(ptr, std::nothrow) respectively.
and expunge paragraph 13.