} // end namespace detail
namespace endian {
+/// Swap the bytes of value to match the given endianness.
template<typename value_type, endianness endian>
inline value_type byte_swap(value_type value) {
if (endian != native && sys::IsBigEndianHost != (endian == big))
return value;
}
+/// Read a value of a particular endianness from memory.
template<typename value_type,
endianness endian,
std::size_t alignment>
return byte_swap<value_type, endian>(ret);
}
+/// Write a value to memory with a particular endianness.
template<typename value_type,
endianness endian,
std::size_t alignment>