I wasn't actually aware this was valid in D: module test; struct foobar; foobar* foo() { return null; } I thought structs needed a body, I can't find anywhere this is documented as valid, did I miss it?. Also how is this supposed to play with eg. TypeInfo ? The error messages reported by DMD when trying different stuff with one aren't very descriptive.
GtkD makes use of this for representing opaque (to GtkD at least) C struct types. They are never defined.
This is now documented.