I tested the code from: http://dlang.org/struct.html
Section: Dynamic Initialization of Structs


struct S
{
    int a;

    static S opCall(int v)
    {
        S s;
        s.a = v;
        return s;
    }

    static S opCall(S v)
    {
        S s;
        s.a = v.a + 1;
        return s;
    }
}

S s = 3; // sets s.a to 3
S t = s; // sets t.a to 3, S.opCall(s) is not called

which does not compile (Error: cannot implicitly convert expression (3) of type int to S).

What is wrong here? Docs or behavior? Tested it on asm.dlang.org where it fails with all compiler versions.

Reply via email to