Endian changes since formal review
- Both the endian types and endian conversion functions now support 32-bit (
float) and
64-bit (double) floating point, as requested.
- Both the endian types and endian conversion functions have been renamed,
using a naming pattern that is consistent for both integer and floating point,
and that emphasizes that aligned types are usually preferred compared to
unaligned types.
- The conversion.hpp conversion functions have been much revised,
refactored, and otherwise improved based on review comments.
- UDT's are supported, as requested.
- Both return-by-value and modify-in-place interfaces are provided, as
requested.
- Synonyms for the BSD byte swapping function names popularized by OS X
and Linux are provided, so that that developers already used to these name
can continue to use them if they wish.
- In addition to the fixed endianness functions, functions that perform
compile-time (via template) and run-time (via function argument) dispatch
are now provided, as requested.
- Compiler (Clang, GCC, VisualC++, etc.) intrinsics and built-in functions
are used in the implementation where appropriate, as requested.
- For the endian types, the implementation uses the endian conversion functions,
as requested.
- Headers have been renamed to endian/types.hpp and endian/conversion.hpp.
Infrastructure file names changed accordingly.
- C++11 features such as
noexcept are now used, while still
supporting C++03 compilers.
- Acknowledgements have been updated.
- Headers have been reorganized to make them easier to read,
with a synopsis at the front and implementation following, as requested.