http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50594
--- Comment #18 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-10-04 10:12:25 UTC --- Ah yes, my mistake, <new> is not required for all of them, [basic.stc.dynamic] says The following allocation and deallocation functions (18.6) are implicitly declared in global scope in each translation unit of a program. void* operator new(std::size_t); void* operator new[](std::size_t); void operator delete(void*); void operator delete[](void*);