change mixins
Michel Fortin
michel.fortin at michelf.com
Sun Feb 14 14:57:07 PST 2010
On 2010-02-14 16:31:29 -0500, Walter Bright <newshound1 at digitalmars.com> said:
> Right now, mixins are defined and used as:
>
> template foo(T) { declarations... }
>
> mixin foo!(int) handle;
>
> The proposal is to switch it around:
>
> mixin template foo(T) { declarations... }
>
> foo!(int) handle;
>
> to follow the notion that mixin templates are very different from
> regular templates, and that should be reflected in their definition
> rather than use.
>
> What do you think?
There's one thing I'd wish a lot to be able to do in a template mixin:
being able to get the name of the 'handle' part from inside the
template. I'm wondering, if you implement this change, could you add
syntax to get that? I was thinking of "mixin.stringof", and it'd be
usable like this:
mixin template Value(int) {
int value;
void write() { writeln("Value '", mixin.stringof, "' is ", value); }
}
class A {
Value!int test;
}
A a = new A;
a.hello.write(); // writes "Value 'test' is 0"
--
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/
More information about the Digitalmars-d
mailing list