February 24, 2013 Error using `equal` with various string types | ||||
---|---|---|---|---|
| ||||
It seems this doesn't work: import std.algorithm; auto b1 = qual(["foo"d], ["foo"]); auto b2 = equal(["foo"d.dup], ["foo"]); It's due to a constraint failure: is(typeof(r1.front == r2.front)) The first call is: immutable(dchar)[] string The second: dchar[] string Anyway can we make `equal` work with these? It would be really useful if it worked. |
February 24, 2013 Re: Error using `equal` with various string types | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | On Sat, 23 Feb 2013 22:39:55 -0500, Andrej Mitrovic <andrej.mitrovich@gmail.com> wrote: > It seems this doesn't work: > > import std.algorithm; > auto b1 = qual(["foo"d], ["foo"]); > auto b2 = equal(["foo"d.dup], ["foo"]); > > It's due to a constraint failure: > is(typeof(r1.front == r2.front)) > > The first call is: > immutable(dchar)[] > string > > The second: > dchar[] > string > > Anyway can we make `equal` work with these? It would be really useful > if it worked. Need an overload with a constraint like: if(isInputRange!typeof(r1.front) && isInputRange!typeof(r2.front) && is(typeof(equal(r1.front, r2.front)))) that recursively calls equal -Steve |
Copyright © 1999-2021 by the D Language Foundation