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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage