The following works but is somewhat of a hack...

module main;

import std.stdio, std.typetuple;

struct tTupleSplit
{

}

template tIndexOf(T, args...)
{
static if (staticIndexOf!(T, args) < 0) enum tIndexOf = args.length;
        else enum tIndexOf = staticIndexOf!(T, args);
}
template tMin(alias a, alias b)
{
        static if (a < b) alias tMin = a; else alias tMin = b;
}
template tIf(alias cond, args...)
{
        enum sp = tIndexOf!(tTupleSplit, args);
    static if (cond)
            alias tIf = args[0..tMin!($,sp)];
        else
                alias tIf = args[tMin!($,sp+1)..$];
}

int main(string[] argv)
{

        alias x = tIf!(false, "a", tTupleSplit, "b");
   writeln(x);
   readln();
   return 0;
}

Reply via email to