[Issue 2631] alias symbol this;
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Jan 28 20:37:20 PST 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2631
------- Comment #5 from wbaxter at gmail.com 2009-01-28 22:37 -------
(In reply to comment #2)
> (In reply to comment #1)
> > Oh, and aliasing this should also nicely take care of the "inner name trick":
> >
> > template Blah!(T) { alias T Blah; }
> >
> > becomes
> >
> > template Blah!(T) { alias T this; }
> >
> > Much cleaner because it clarifies the intent and allows "one point of
> > renaming".
> >
>
> struct S
> {
> mixin Blah!(int); // what happens?
> }
>
> If 'this' always refers to the template, you can't do cute things like mixing
> in support for operations on values of type S.
>
> If 'this' refers to the template sometimes and to the enclosing scope in
> others, it's confusing.
Could the usual scope differentiation syntax be used?
alias T this; // I mean the template itself
vs
alias T .this; // I mean the this in the outer scope
Granted the "scopes" aren't actually different when you mix-in a template, but
I think the intent is clear enough.
--
More information about the Digitalmars-d-bugs
mailing list