Почему я могу использовать static_cast с void *, но не с char *
я знаю этоreinterpret_cast
в основном используется собирается или изchar*
.
Но я был удивлен, обнаружив, чтоstatic_cast
может сделать то же самое сvoid*
, Например:
auto foo "hello world"s;
auto temp = static_cast<void*>(&foo);
auto bar = static_cast<string*>(temp);
Что мы получаем от использованияreinterpret_cast
а такжеchar*
надstatic_cast
а такжеvoid*
? Это как-то связано со строгой проблемой алиасинга?