Ok, I've gone over this, adapted it, and mostly understand it.  I just
have one question left:

== Quote from bearophile (bearophileh...@lycos.com)'s article
> template Iota(int stop) {
> ...
>         alias TypeTuple!(Iota!(stop-1), stop-1) Iota;
> }
> ...
>     foreach (t; Iota!(str_types.length))

What happens at compile-time with this foreach loop?

I nievely went and replaced "foreach (t; Iota!(str_types.length))"
with "foreach (t; str_types.length)", since the length of that array
is known at compile-time.  That of course bombed, but I don't quite
get why.  Is the compiler actually evaluating the foreach loop at
compile time?  How could it, when the body makes run-time checks?  If
it's not, why doesn't my change work?

Jason

Reply via email to