importing std.algorithm breaks std.string.count

Seth Hoenig seth.a.hoenig at gmail.com
Fri Sep 17 14:15:31 PDT 2010


I have these two minimal programs:


import std.string;
void main()
{
    string str = "abc";
    int i = str.count("ab");

}



and:



import std.string;
import std.algorithm;
void main()
{
    string str = "abc";
    int i = str.count("ab");

}



The only difference is line 2, where I import std.algorithm.
The first program compiles fine, but the second program does not compile,
spitting out the error message:

bash-3.2$ dmd -ofdummy dummy.d
/u/sah2659/dmd2/linux/bin/../../src/phobos/std/functional.d(176): Error:
static assert  "Bad binary function q{a == b}. You need to use a valid D
expression using symbols a of type dchar and b of type string."
/u/sah2659/dmd2/linux/bin/../../src/phobos/std/functional.d(179):
instantiated from here: Body!(dchar,string)
/u/sah2659/dmd2/linux/bin/../../src/phobos/std/algorithm.d(3410):
instantiated from here: result!(dchar,string)
dummy.d(7):        instantiated from here: count!("a == b",string,string)


I can't imagine I'm the first person to notice a bug like this, so is there
something I am doing wrong?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20100917/3965f836/attachment.html>


More information about the Digitalmars-d-learn mailing list