digitalmars.D - creating void arrays
- Steven Schveighoffer (17/17) Oct 14 2010 One problem in D that has no clear answer and continuously rears it's he...
One problem in D that has no clear answer and continuously rears it's head is the void type being used for buffering. The main concern is that the runtime cautiously may remove the NO_SCAN bit from a void array. This means false pointers. But can we approach this from a different angle? What if you *couldn't* create void arrays? Oh, you could cast arrays to void but you could never create them as void. In addition, you couldn't append to void, concatenate void's or dup them. What problems would this cause? Essentially, if you wanted a void array that contains pointers, you'd have to change: auto x = new void[...]; to void x = new void*[...]; And if you wanted one that doesn't contain pointers, you could do: void x = new ubyte[...]; Any other issues? Who does frequent void appending or concatenation? -Steve
Oct 14 2010