struct is value type so I don't like this change of cast and init. I think that should introduce tuple literal as {} and support cast from tuple to struct like: struct S{int x,y;} S* s = &cast(S){0,0};//tuple literal + cast *s = cast(S){0,0};//tuple literal + cast #sorry for my poor English.