On 14/06/12 19:31, Joe Buck wrote:
It only saves one character in any case: your "self" is just "*this".

No, "this" points to the object in C++. The OP's "self" is referring to the function being compiled. So here "self" would be the same as "foo".

I don't think there is any way to get this without making a language extension, unless there is some way of turning the string __FUNC__ into the function. But I also don't see any advantage over simply using the function name directly. After all, how often do you need recursion - and what is the problem with writing out the function name in full on those occasions?

mvh.,

David




________________________________________
From: gcc-ow...@gcc.gnu.org [gcc-ow...@gcc.gnu.org] on behalf of Ian Lance 
Taylor [i...@google.com]
Sent: Thursday, June 14, 2012 10:19 AM
To: Rick C. Hodgin
Cc: gcc@gcc.gnu.org
Subject: Re: "self" keyword

"Rick C. Hodgin"<foxmuldrs...@yahoo.com>  writes:

I was thinking C and C++.

int myclass::foo(int a)
{
     // recursion
     self(a + 1);
}

Just out of curiosity, why wouldn't it be accepted back into mainline?

In general these days GCC discourages language extensions.  They would
have to have a compelling advantage.  I don't see that here.  Even if I
did, I would recommend running it through a language standards body
first.

Ian


Reply via email to