Can anybody explain why I get the following error:

test.d(28): Error: test.tblahTemplate!(uint).tblah at test.d(13) conflicts with
test.tblahTemplate!(int).tblah at test.d(13)

When I try to compile this?:

test.d:

int blah(uint x)
{
        return x;
}

int blah(int x)
{
        return (x >= 0 ? x : -x);
}

version(WithT)
{
        template tblahTemplate(Type)
        {
                Type tblah(Type x)
                {
                        static if(Type.min == 0)
                                return x;
                        else
                                return (x >= 0 ? x : -x);
                }
        }

        mixin tblahTemplate!(uint);
        mixin tblahTemplate!(int);
}

void main()
{
        blah(3);
        version(WithT)
        {
                tblah(3);
        }
}

It works without -version=WithT but not with it. Why can't it resolve it if 
it's a template?

Thanks,
Mike L.

Reply via email to