It's work:
template Foo(alias var)
{
void inc() { var++; }
}
void main()
{
int v = 4;
alias foo = Foo!(v);
foo.inc();
assert(v == 5);
}
But it doesn't work:
template Foo(alias var)
{
void inc() { var++; }
}
void main()
{
struct V{
int a;
}
auto v = V(4);
alias foo = Foo!(v.a);
foo.inc();//err
assert(v.a == 5);
}
Hence this applies to Alias!() and AliasSeq!()