On Friday, 4 March 2016 at 16:45:42 UTC, Andrei Alexandrescu
wrote:
Currently we have a very useful stride() function that allows
spanning a random access range with a specified step, e.g. 0,
3, 6, 9, ... for step 3.
I've run some measurements recently and it turns out a
compile-time-known stride is a lot faster than a variable. So I
was thinking to improve Stride(R) to take an additional
parameter: Stride(R, size_t step = 0). If step is 0, then use a
runtime-valued stride as until now. If nonzero, Stride should
use that compile-time step.
Takers?
Andrei
Surely after inlining (I mean real inlining, not dmd) it makes no
difference, a constant is a constant?
I remember doing tests of things like that and finding that not
only did it not make a difference to performance, ldc produced
near-identical asm either way.