On Tuesday, 2 July 2013 at 04:49:55 UTC, estew wrote:

> It's location in the class my not be the same but that is, > in
> general, irrelevant unless you are messing with the bits of
the class.


Actually we do this a lot in C++ where I work to ensure proper alignment. We are also starting to do this in D where we have C++ <-> D bindings so we can make our D structs exactly match our C++ structs in memory.

Personally I see less benefit over:

public @property int value;

This approach is nice. It can be used both when layout is important and when it is "don't care" and is clearer. I can look at the struct and immediately read its memory footprint.

Your suggested proposal cannot be used when layout is important as it is left to the compiler. It would require a workaround to coerce the compiler into submission, or additional compiler circuitry making it even more complex and slowing it down.

Or just use the old way. Just because one extends a feature does not mean the old feature is removed. If you need to hack up the bits just explicitly allocate the field... simple as that.

Reply via email to