Run-time Indexing of a Compile-Time Tuple

Idan Arye via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue May 12 06:30:21 PDT 2015


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().

A little hacky, but how about casting it to a static array?

http://dpaste.dzfl.pl/d0059e6e6c09


More information about the Digitalmars-d-learn mailing list