Tengo la siguiente función de plantilla utilizada para volcar datos de cualquier tipo estándar en una secuencia de salida binaria.molde de estilo c vs reinterpret_cast
template<typename T> static void
dump (const T& v, ostream& o) {
o.write (reinterpret_cast<const char*>(&v), sizeof(T));
}
En lugar de la reinterpret_cast, también podría usar un estilo C (const char *). ¿Hay alguna razón en particular para usar reinterpret_cast? Leí algunas otras publicaciones donde reinterpret_cast fue mal visto. Pero el uso anterior es legal y no puede ser reemplazado por nada más, ¿verdad?
Gracias
Supongo que conoce la consecuencia de hacer eso (que el archivo resultante solo puede ser leído por el programa compilado con las mismas opciones con el mismo compilador en la misma arquitectura). – curiousguy
Alguien me va a golpear por decir esto, pero si * quieres * usar moldes estilo C, siempre puedes dejar un comentario radical genérico que simplemente no puedes perderte. Tuvo que * alguna * manera de encontrar su 'const's en C, también. ¯ | _ (ツ) _ | ¯ Por supuesto, debes tener en cuenta los peligros. –