xxxxxxxxxx
auto doFooCountTimes(alias c)(){
struct Result{
immutable count=c*4/2;
static int foo(const int i){
return i+i;
}
}
Result ret;
return ret;
}
int withDo(alias n, alias s)(){
int i = n;
static foreach(j; 0..s.count){
i = s.foo(i);
}
return i;
}
void main()
{
int i = withDo!(2, doFooCountTimes!5);
assert(i == 2048);
}