typeof(this) at class scope?
Bill Baxter
dnewsgroup at billbaxter.com
Sun Jul 8 14:11:30 PDT 2007
Is this supposed to work?
----
import std.stdio : writefln;
class Foo {
alias typeof(this) this_type; // <<--- seems odd but works
this(int val) { value = val; }
int value;
}
void main()
{
auto foo = new Foo.this_type(10);
writefln(foo.value);
}
-----
It does work currently, but I just want to make sure this is intentional
and isn't going to go away. It seems odd that it works because I
thought 'this' didn't really exist outside method bodies.
The actual use case is in a mixin that is used to implement the bulk of
of a couple of different variations of the same class. But the mixin
needs to know the type of the thing it's implementing for writing
various methods. If typeof(this) isn't kosher, then I could pass in the
type as a template parameter explicitly but that's not as nice.
--bb
More information about the Digitalmars-d-learn
mailing list