static foreach considered
Idan Arye via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jun 8 15:12:05 PDT 2015
On Monday, 8 June 2015 at 21:32:52 UTC, Timon Gehr wrote:
> I think the body should have access to a scope that is hidden
> from the outside which contains the loop variable, but
> declarations should be inserted into the enclosing scope like
> for static if.
This would require some syntax to mark the declarations we want
to expose. Maybe `out`?
This is far better than the mixin template approach, since it'll
alert us early about conflicts:
static foreach (ident; ["a", "b", "a"])
{
int mixin(ident ~ "1");
out int mixin(ident ~ "2");
}
`a1` is created twice, but that's OK since it isn't marked with
`out`. `a2` is declared twice and raises a compilation error
because it's marked with `out`. This will ensure these kind of
errors are detected early and the compilation error points to the
exact place of declaration.
More information about the Digitalmars-d
mailing list