I've been looking around and am just shocked that there doesn't seem to be any way of using the optimizer or templating system in any consistent way across compilers to generate a compile time endinness value. Does anyone know why the C++ committee has steered clear of this?
Yes. Though for the most part, the compiler should be able to pad as it sees fit, there should be a standard way to remove padding for instances where interoperability between systems is a requirement.