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