intercambiando "endianness" de flotadores y dobles
Me gustaría cambiar el "endianness" de los valores flotantes y dobles, funciona bien, haciendo algo como:
float const v{1.f};
swap(reinterpret_cast<::std::uint32_t const&>(v));
¿Existe una mejor manera de hacer el intercambio, sin un yeso?
EDITAR:swap()
es un contenedor de C ++ para las funciones integradas de gcc, no lo incluí aquí.
uint16_t __builtin_bswap16 (uint16_t x)
uint32_t __builtin_bswap32 (uint32_t x)
uint64_t __builtin_bswap64 (uint64_t x)
El intercambio de endianess es necesario para algunos formatos de datos, como CBOR.