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();
