can't you remove the if(this.ptr is null) return; checks everywhere - how should that happen - without exception at creation time
Struct.init must be a valid state according to D specs, and it is pretty much unavoidable considering we have no default constructor for structs.