This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 113d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2024-03-20


2014. Unneeded deallocation signatures

Section: 17.6.3.3  [new.delete.array]     Status: NAD     Submitter: Richard Smith     Date: 2014-10-03

Paper N3778 added the following two deallocation signatures to the standard library:

   void operator delete(void* ptr, std::size_t size,
                        const std::nothrow_t&) noexcept;
   void operator delete[](void* ptr, std::size_t size,
                          const std::nothrow_t&) noexcept;

The core language does not currently provide for calling these functions; they could only be called as the matching deallocation function when a constructor throws an exception, but the rules for determining the matching deallocation function do not consider the existence of the sized-deallocation variants.

Rationale (November, 2014):

CWG agreed that the performance gain in using the sized-deallocation variants when a constructor throws an exception would be insignificant compared to the cost of the exception handling itself and thus insufficient motivation for changing the core language. The issue was referred to LWG for their consideration regarding removal of these signatures.