How about a "static foreach"?
Mehrdad
wfunction at hotmail.com
Sat Jun 16 18:02:00 PDT 2012
This doesn't work:
foreach (i; 0 .. T.tupleof.length)
static if (is(typeof(T.tupleof[i]) == int)) // error!
...
because the foreach isn't static.
It forces me to write:
template Iota(size_t i, size_t n)
{
static if (n == 0) { alias TypeTuple!() Iota; }
else { alias TypeTuple!(i, Iota!(i + 1, n - 1)) Iota; }
}
foreach (i; Iota!(0, T.tupleof.length)) // "static foreach"
static if (is(typeof(T.tupleof[i]) == int))
...
which gets annoying quickly.
Why not just let us write
static foreach (i; 0 .. T.tupleof.length)
static if (is(typeof(T.tupleof[i]) == int))
...
so that the code is a lot more succinct and easy to write?
More information about the Digitalmars-d
mailing list