Warum kann ich static_cast mit void * aber nicht mit char * verwenden?
Ich weiß dasreinterpret_cast
wird hauptsächlich verwendet, um zu oder von einem @ zu gehchar*
.
Aber ich war überrascht zu finden, dassstatic_cast
könnte dasselbe mit einem @ machvoid*
. Beispielsweise
auto foo "hello world"s;
auto temp = static_cast<void*>(&foo);
auto bar = static_cast<string*>(temp);
Was bringt uns die Verwendung von reinterpret_cast
undchar*
Überstatic_cast
undvoid*
? Hat das etwas mit dem strengen Aliasing-Problem zu tun?