On Monday, 8 June 2015 at 20:16:53 UTC, Idan Arye wrote:
On Monday, 8 June 2015 at 20:02:11 UTC, Andrei Alexandrescu
wrote:
Walter and I are looking at ways to implement it. Here's a
baseline without static foreach - a "trace" function that
prints function calls before they are made:
http://dpaste.dzfl.pl/762c83c7fe30
If the function is overloaded, that won't work. In such cases,
static foreach might be helpful. Here's code from the cycle "I
have a dream":
http://dpaste.dzfl.pl/82a70c809210
I'm trying to collect together motivating examples and to
figure out the semantics of the feature.
Andrei
How will scoping work? Similar to mixin templates?
It would be nice together with this feature to be able to mixin
identifiers:
static foreach (ident; ["foo", "bar"])
{
auto mixin(ident)()
{
// code for foo/bar
}
}
Otherwise, other than overloads and template instantiations
this won't be much better then generating code strings with
CTFE...
I would assume that it would be pretty much the same as doing
foreach(T; TypeTuple!(...))
{
...
}
except that you're not forced to shove everything in a TypeTuple.
- Jonathan M Davis