Se ho una funzione generica che prende un void * come parametro, Auto in C ++ 11 può aiutare a fermare qualsiasi cast errato di quel parametro?
Ad esempio, potremmo avere un sistema di eventi che invia eventi e un puntatore ad alcuni dati rilevanti per l'evento che invia.
void EventClass::SendEvent (eventTypeEnum eventType, void* eventData)
{
int* castEventData = static_cast<int*> (eventData);
//.. Do something
}
Nell'esempio precedente, un eventType potrebbe essere inviato con eventData come float * e un altro come puntatore a una struttura. Il file static_cast presenterà un errore e causerà problemi.
C'è un modo in cui auto potrebbe essere usato per evitare questo problema.
Si prega di notare che questo è solo un esempio (non eccezionale se dispiace) per aiutarmi a capire le possibilità dell'auto e non un problema reale che ho.