rzucanie przez void * zamiast używania reinterpret_cast
Czytam książkę i znalazłem toreinterpret_cast
nie powinien być używany bezpośrednio, ale raczej rzucać w pustkę * w połączeniu zstatic_cast
:
T1 * p1=...
void *pv=p1;
T2 * p2= static_cast<T2*>(pv);
Zamiast:
T1 * p1=...
T2 * p2= reinterpret_cast<T2*>(p1);
Jednak nie mogę znaleźć wyjaśnienia, dlaczego jest to lepsze niż bezpośredni rzut. Byłbym bardzo wdzięczny, gdyby ktoś dał mi wyjaśnienie lub wskazał mi odpowiedź.
Z góry dziękuję
p.s. Wiem co to jestreinterpret_cast
używane, ale nigdy nie widziałem, że jest używany w ten sposób