On Monday, 11 May 2015 at 22:46:00 UTC, Per Nordlöw wrote:
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().

Would this work?

    auto x = std.typecons.tuple(Rs)[_index]


Reply via email to