¿Por qué puedo usar static_cast con void * pero no con char *
Yo sé esoreinterpret_cast
se usa principalmente yendo hacia o desde unchar*
.
Pero me sorprendió descubrir questatic_cast
podría hacer lo mismo con unvoid*
. Por ejemplo:
auto foo "hello world"s;
auto temp = static_cast<void*>(&foo);
auto bar = static_cast<string*>(temp);
¿Qué ganamos al usarreinterpret_cast
ychar*
terminadostatic_cast
yvoid*
? ¿Tiene algo que ver con el estricto problema de alias?