import std.traits, std.stdio; void times(F)(uint n, F func) if (isSomeFunction!F) { immutable ar = arity!func; foreach (uint i; 0 .. n) { static if (ar == 0) { func(); } else static if (ar == 1) { func(i); } else { static assert(false, "invalid callable"); } } } void main() { 10.times((uint i) => writeln("hello #", i)); }