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

Reply via email to