Per fare un esempio di ciò che devo fare: immaginiamo di avere un array di float (quindi 32 bit per elemento), ma di doverlo usare in realtà per elementi di tipo int32_t (stessa dimensione, ma significato completamente diverso):
Codice: Seleziona tutto
float *my_array = new float[100];
int32_t *my_array_int1 = static_cast<int32_t*>(my_array);
int32_t *my_array_int2 = reinterpret_cast<int32_t*>(my_array);
Il fatto che debba usare soltanto tipi numerici di base (dal char all'intero di 32 bit e dal float al double) mi permetterebbe di usare per lo stesso compito delle union. Può rivelarsi utile (ossia più performante) un metodo che faccia uso delle union invece che che dei cast espliciti?
