static foreach considered
Idan Arye via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jun 8 15:05:48 PDT 2015
On Monday, 8 June 2015 at 21:14:46 UTC, Jonathan M Davis wrote:
> 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
If that was the case, A library solution for converting a
compile-time range to a TypeTuple would have
sufficed(http://dpaste.dzfl.pl/7eb30f5e1156 - this compiles in
2.67).
The problem with regular `foreach` over type tuple is that
declarations inside the foreach's body are invisible from the
outside. If `static foreach` had this limitation, Andrei's
example wouldn't work since `trace` would be local to the body of
the `static foreach`. This essentially renders the main usecase
of this feature(declaring stuff) and leaves us with a loop
unrolling optimization...
More information about the Digitalmars-d
mailing list