On Monday, 17 February 2014 at 19:30:38 UTC, Timon Gehr wrote:
On 02/17/2014 08:22 PM, simendsjo wrote:
Should the following two uses be a compile-time error?
foreach(i; 10 .. 0) // Never executes
foreach(i; iota(10, 0)) // .. neither does this
I would like the second to either be a compile-time error or
automagically use a negative step.
So we need to use a negative step in iota() or use a for loop
foreach(i; iota(10, 0, -1)) // as expected
The parameters can be runtime values. Auto-magically using a
negative step would hence be a bad idea.
Why would it be a bad idea? And I don't see where the runtime
aspect comes in.
There would be a very small setup performance hit when using
runtime variables for choosing the step direction.