digitalmars.D - Re: this as lvalue?
- Steven Schveighoffer <schveiguy yahoo.com> Sep 04 2010
Andrei Alexandrescu Wrote:On 9/3/10 16:03 CDT, bearophile wrote:JMRyan:Is this a bug in the compiler (v.2.047)? Am I missing something in thinking it shouldn't be?
I think it's not a bug. It's not a common need, but a method may way want to swap this with another. In Phobos this is done on a struct, see: http://www.dsource.org/projects/phobos/browser/trunk/phobos/std/stdio.d#L324 Bye, bearophile
For classes this must be an rvalue. Andrei
Should this work? class C { int x; void opAssign(int n) {x = n;} void foo(int n) {this = n;} } I agree this should not be rebindable. But it has to be an lvalue. -Steve
Sep 04 2010
On 09/04/2010 10:41 AM, Steven Schveighoffer wrote:Andrei Alexandrescu Wrote:On 9/3/10 16:03 CDT, bearophile wrote:JMRyan:Is this a bug in the compiler (v.2.047)? Am I missing something in thinking it shouldn't be?
I think it's not a bug. It's not a common need, but a method may way want to swap this with another. In Phobos this is done on a struct, see: http://www.dsource.org/projects/phobos/browser/trunk/phobos/std/stdio.d#L324 Bye, bearophile
For classes this must be an rvalue. Andrei
Should this work? class C { int x; void opAssign(int n) {x = n;} void foo(int n) {this = n;} } I agree this should not be rebindable. But it has to be an lvalue. -Steve
The example should work, but doesn't need this to be an lvalue. Andrei
Sep 04 2010