On Sunday, 18 March 2012 at 10:38:19 UTC, Tove wrote:
On Sunday, 18 March 2012 at 10:25:20 UTC, F i L wrote:
F i L wrote:
class CoolClass
{
mixin Attribute!("int", "a", "Cool", "Heh");
mixin Attribute!("int", "b", "Cool", "Sup");
}
void main()
{
auto c = new CoolClass();
writeln(c.a, ", ", c.b); // 0, 0
writeln(c.a_Cool().s); // Heh
writeln(c.b_Cool().s); // Sup
}
Is it not possible to alias a mixin to just one letter, and
then use it to have any syntax we want... something like this:
x("@attribute(Serializable.yes) int a");
Sure, but there's still the issue of using attributes for
codegen. For instance compare:
struct Test {
@GC.NoScan int value;
}
to, the current:
struct Test {
int value;
this() { GC.setAttr(&value, NO_SCAN); }
}
How can we do that with mixin templates? If attributes where a
language type the compiler could exploit in a consistent way, It
would be *trivial* describing this behavior in a declarative way.