How do I convert between big-endian and little-endian values in C++?

How do I convert between big-endian and little-endian values in C++? For clarity, I have to translate binary data (double-precision floating point values and 32-bit and 64-bit integers) from one CPU architecture to another. This doesn’t involve networking, so ntoh() and similar functions won’t work here. Note: The answer I accepted applies directly to compilers … Read more