On Tue, 04 Oct 2011 12:24:52 -0400, jimmy <zsu0...@yahoo.com.tw> wrote:

Hi,

I have the following code.

struct Foo(int DIM) {
        Foo!(DIM) opBinary(string op) (Foo!(DIM) rhs)
                if (op == "+" || op == "-")
        {
                return Foo!(DIM)();
        }
}

unittest {
        auto u = Foo!(2)();
        auto v = Foo!(2)();
        assert(u + v == u);
}

I got the following during my test.

Z:\proj\D\gas>rdmd --main -unittest a.d
rdmd --main -unittest a.d
a.d(12): Error: incompatible types for ((u) + (v)): 'Foo!(2)' and
'Foo!(2)'
Failed: dmd -unittest -v -o- "a.d" -I"." >a.d.deps

I have no idea why the incompatible types error occurred.

As Ali said, use Foo instead of Foo!DIM, but I think there is also a bug for this already. I just can't find it right now...

-Steve

Reply via email to