view test/bug33.d @ 104:4d1e9eb001e0 trunk

[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
author lindquist
date Mon, 19 Nov 2007 02:58:58 +0100
parents 28e99b04a132
children
line wrap: on
line source

module bug33;

extern(C) int memcmp(void*,void*,size_t);

private int string_cmp(char[] s1, char[] s2)
{
    auto len = s1.length;
    if (s2.length < len)
        len = s2.length;
    int result = memcmp(s1.ptr, s2.ptr, len);
    if (result == 0)
        result = cast(int)(cast(ptrdiff_t)s1.length - cast(ptrdiff_t)s2.length);
    return result;
}

struct S
{
    char[] toString()
    {
        return "S";
    }
}

int func()
{
    S a,b;
    return string_cmp(a.toString(),b.toString());
}

void main()
{
    assert(func() == 0);
}