https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86954

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Arguably this was good defensive programming for C++03. The program could have
replaced operator new(size_t) and operator delete(void*) but not replaced
operator new(size_t, const nothrow_t&) and operator delete(void*, const
nothrow_t&). That would be undefined (C++03 [lib.new.delete.single] p7) but by
using the nothrow version of operator delete the library avoids mixing the
default version of new with a replaced version of delete. LWG 206 changed the
behaviour for C++11, so that combining the nothrow new and normal delete does
the right thing, but GCC has only met that requirement since yesterday.

I'm not sure it's worth changing anything here now. get_temporary_buffer was
deprecated and removed from C++2a anyway.

Reply via email to