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

questionAnswers(3)

yourAnswerToTheQuestion