```d struct S { int a; int b; } S s = { 5, 2 }; // works fine
S fun() { return { 5, 2 }; } // doesn't work :-( S fun2() { S s = { 5, 2 }; return s; } // works but is ugly struct S2 { int a; int b; this(int c, int d) { a=c; b=d; } }S2 fun3() { return S2( 5, 2 ); } // works but requires explicit constructor
``` Is there a reason why the short form is not possible?It's clearly an initialization of a new instance of a struct, and the requested type is unambigous (the return type of the function).