[Issue XXX] ToBeFiled: 'this' can't be used as an alias parameter for a mixin
Bill Baxter
wbaxter at gmail.com
Sat Dec 16 09:50:09 PST 2006
[I'll file this for real once Bugzill is back]
This may not be a bug for some technical reason unbeknownst to me that
the spec mentions, but I found it unexpected. You can't use 'this' as
an alias paramter to a mixin in a class member function. The workaround
is pretty easy, you just assign it to a local dummy variable, and use
that instead.
import std.stdio : writefln;
template printer_mix(alias T)
{
void print() {
writefln(T);
}
}
class Foo
{
void dump() {
// Error: mixin printer_mix!(this) does not match any template
declaration
mixin printer_mix!(this);
// this version ok:
//Foo x = this;
//mixin printer_mix!(x);
print();
}
char[] toString() { return "I'm Batman"; }
}
void main()
{
Foo f = new Foo();
f.dump();
}
More information about the Digitalmars-d-bugs
mailing list