http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54196
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-08-07 20:55:36 UTC --- N.B. there are various overloads of operator new that are implicitly declared in every translation unit, including (in C++03) void* operator new(std::size_t) throw(std::bad_alloc) which would be ok except for the std:: qualification