The pattern final switch (_index) { import std.range: empty, front; foreach (i, R; Rs) { case i: assert(!source[i].empty); return source[i].front; } }
occurring in roundRobin() and now also in my merge at https://github.com/nordlow/justd/blob/master/range_ex.d#L604 is nor pretty nor concise.Is there a better way of indexing a compile time tuple with a run-time index?
It may have to work together with CommonType somehow as is shown in my implementation of merge().