Ho la seguente funzione di modello utilizzata per scaricare dati di qualsiasi tipo standard in un flusso di output binario.cast di c-style vs reinterpret_cast
template<typename T> static void
dump (const T& v, ostream& o) {
o.write (reinterpret_cast<const char*>(&v), sizeof(T));
}
Invece del reinterpret_cast potrei anche usare uno stile di C (const char *). C'è qualche ragione particolare per usare reinterpret_cast? Ho letto alcuni altri post in cui reinterpret_cast era disapprovato. Ma l'uso di cui sopra è legale e non può essere sostituito con qualsiasi altra cosa, giusto?
Grazie
Suppongo che tu conosca la conseguenza di ciò (il file risultante può essere riletto solo dal programma compilato con le stesse opzioni con lo stesso compilatore sulla stessa architettura). – curiousguy
Qualcuno mi darà un pugno per averlo detto, ma se tu * vuoi * usare i cast in stile C, puoi sempre lasciare un commento generico-radicale che non puoi assolutamente perdere. C'era * un * modo * per trovare il tuo 'const's in C, anche. ¯ | _ (ツ) _ | ¯ Naturalmente dovresti badare ai pericoli, però. –