Dmitry Olshansky:
> template staticMap(alias F,T...){
>      static if(T.length > 1){
>          alias TypeTuple!(F!(T[0]),staticMap!(F,T[1..$])) staticMap;
>      }else{
>          alias TypeTuple!(F!(T[0])) staticMap;
>      }
> }

It's better if you add some spaces to improve readability, and generally a map 
has to work on an empty collection too. "The Little Schemer" book shows that 
it's often better to base recursivity on zero or empty or the thing that 
represents nothing (untested):

template staticMap(alias F, T...) {
    static if (T.length)
        alias TypeTuple!(F!(T[0]), staticMap!(F, T[1 .. $])) staticMap;
    else
        alias TypeTuple!() staticMap;
}

Bye,
bearophile

Reply via email to