is this a bug with writeln / std.algorithm.remove?
arturg
var.spool.mail700 at gmail.com
Fri Feb 16 11:45:21 UTC 2018
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
More information about the Digitalmars-d-learn
mailing list