The following code fails to compile:

void foo (inout int[] arr)
{
    auto dg = {
        foreach (i, e ; arr) {}
    };
    dg();
}

void main ()
{
    auto a = [3, 4, 5];
    foo(a);
}

Error message:

main.d(9): Error: variable main.foo.__lambda1.__aggr1174 inout variables can only be declared inside inout functions main.d(9): Error: variable main.foo.__lambda1.e inout variables can only be declared inside inout functions

If I remove the delegate everything compiles. Am I doing something wrong?

--
/Jacob Carlborg

Reply via email to