Edward Diener wrote: [...]
Finally, I admit as a 3rd party developer on Windows who has supplied implementation code for end-users of VC++ and C++ Builder, that I consider it almost "criminal" in a computer programming sense when an end-user is not protected by these #pragmas from possible changes he may make at the command-line or from within an IDE. Surely if Microsoft and Borland have gone out of the way top provide this fail-safe method of eliminating data layout errors, an intelligent implementor can use these methods.
It is certainly "criminal" to not use the appropriate #pragma mechanism if you provide a binary compiler-specific distribution that depends on certain alignment (and other options affecting binary compatibility: enum size, empty base/member optimization, and so on.)