On Monday, 24 February 2020 at 19:50:23 UTC, JN wrote:
foreach (i; iota(5)) { printers[i] = () { write(i); }; }
This allocates 1 closure and generates 1 lambda, so all printers are identical delegates. You could use a static foreach:
NumberPrinter[] printers; static foreach (i; 0..5) printers ~= () { write(i); }; foreach (d; printers) d();