On Saturday, 28 June 2014 at 20:40:21 UTC, Ary Borenszweig wrote:
This doesn't work:class Foo { this() { this = new Foo; } } Error: Cannot modify 'this' However you can do this: class Foo { this() { auto p = &this; *p = new Foo(); } } It even changes the value of this!Should that compile? I mean, it's the same as modifying 'this'...
D language was not aimed toward preventing any attepmt to circumvent some hypothetical limitations (it does not even cope with things which it should definetely prevent). There are holes much - much worse. And changing value of this parameter is not a problem anyway, since it is possible to have typeid(this) != typeid of type of current method which is bigger problem than pointing to different value of same type.
