static inline operator generates an external symbol

Martin v. Loewis martin@loewis.home.cs.tu-berlin.de
Tue Jan 18 12:42:00 GMT 2000


> Therefore, the compiler itself must create the declaration
> regardless of using builtins or not.

Indeed. According to the C++ standard, 3.7.3, [basic.stc.dynamic]/2:

# The following allocation and deallocation functions (18.4) are
# implicitly declared in global scope in each translation unit of a
# program
#
# void* operator new(std::size_t) throw(std::bad_alloc); 
# void* operator new[](std::size_t) throw(std::bad_alloc); 
# void operator delete(void*) throw(); 
# void operator delete[](void*) throw();

It is not possible to declare those functions static in Standard C++,
period.

Regards,
Martin


More information about the Gcc-bugs mailing list