This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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