This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: __func__ and C++


Joe Buck wrote:
On Tue, Sep 02, 2003 at 11:24:40AM -0700, Matt Austern wrote:

Inside a destructor, __func__ and __FUNCTION__ return "foo", not "~foo". (__PRETTY_FUNCTION__ behaves the way I would expect.)

Is this behavior intended, or is it a bug? The gcc manual merely says that __func__ is supposed to return the function's name without a type signature, and doesn't say what that's supposed to mean in the case of special C++ functions. Since __func__ in C++ is a gcc extension, none of the language standards provide any useful guidance.


Reading the document, I would expect "without a type signature" to mean
that the string does not include the return type or the argument types,
but I would still expect to see "~foo" rather than "foo", or "operator=="
or similar.  Of course, since it's an extension, it is arbitrary
should it produce a qualified name? Should it include a template-id?
Should it return the mangled name? (Our docs rule out the last, but
it is what you want in certain places)

IIRC there was a suggestion for some kind of __QUALIFIED_FUNCTION__ variable.

My thoughts are to leave __func__ alone, and wait for some kind of
standarization. If anyone wants to implement __QUALIFIED_FUNCTION__, I
won't object. Then people can #define __func__ __QUALIFIED_FUNCTION__ to
experiment.


nathan


--
Nathan Sidwell    ::   http://www.codesourcery.com   ::     CodeSourcery LLC
         The voices in my head said this was stupid too
nathan@codesourcery.com    ::     http://www.planetfall.pwp.blueyonder.co.uk



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]