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 calledwhich 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.