Error using `equal` with various string types

Steven Schveighoffer schveiguy at yahoo.com
Sat Feb 23 20:05:05 PST 2013


On Sat, 23 Feb 2013 22:39:55 -0500, Andrej Mitrovic  
<andrej.mitrovich at 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


More information about the Digitalmars-d-learn mailing list