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