I've read both of the available printed D books in their entirety (Ali's and Andrei's) and I noticed Andrei's book (circa ~2010) mentions that the D compiler rearranges the members of `class` objects to be more optimal by reducing alignment-induced padding whereas it leaves the alignment-induced padding of `struct` objects exactly the same as implied and required by the order in which you've written the members of the struct.

So, the question here is, is there a way to make the D compiler change that behavior per specific `class` and `struct` type definitions or at least across the whole compilation?

I looked in the `pragma` section in the D library documentation but didn't find it and didn't find it elsewhere either (e.g. it wasn't in the `man` page for DMD).

Does anyone know if such memory arrangement control is possible currently?

It isn't a major problem at all (easy to work around, such as by embedding a `struct` in a class for `class`s, or manually reordering `struct` members for `struct`s), but I was just curious.

Thanks for reading, as always!

Reply via email to