isn't it even worse? import std.stdio; struct S { int i; this(void* p = null){this.i = 5;} } void main() { //S l(); //gives a linker error auto k = S(); writeln(k.i); //prints 0 }