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: "self" keyword


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-owner@gcc.gnu.org [gcc-owner@gcc.gnu.org] on behalf of Ian Lance Taylor [iant@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"<foxmuldrster@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



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