this code fails to compile:

    void delegate(void*) dg;
    void delegate(void*)[] dgs = [dg, dg, dg];
    dgs.writeln;
    dgs.remove(1).writeln();

if you comment out dgs.writeln; it works as expected,
it works if you use other types then void*:

    void delegate(int*) dg;
    void delegate(int*)[] dgs = [dg, dg, dg];
    dgs.writeln;
    dgs.remove(1).writeln();


the compiler is DMD64 D Compiler v2.078.2 and the error message is:

/usr/include/dlang/dmd/std/algorithm/mutation.d(1929): Error: template std.algorithm.mutation.moveAll cannot deduce function from argument types !()(void delegate(void*)[], void delegate(void*)[]), candidates are: /usr/include/dlang/dmd/std/algorithm/mutation.d(1455): std.algorithm.mutation.moveAll(InputRange1, InputRange2)(InputRange1 src, InputRange2 tgt) if (isInputRange!InputRange1 && isInputRange!InputRange2 && is(typeof(move(src.front, tgt.front)))) empty.d(9): Error: template instance std.algorithm.mutation.remove!(cast(SwapStrategy)2, void delegate(void*)[], int) error instantiating

Reply via email to