So reinterpret_cast is just a syntax appeaser, telling the compiler to think of this pointer as a pointer to x rather than a pointer to y.

But how would that ever differ from static_cast if both always properly access member functions of base or derived? Descriptions I read are like lawyer talk, they blather a lot without ever saying much. "Reinterpret_cast" is only safe to use for casting back to what it originally was??? WTH is it good for then, other than casting a void pointer passed through some kind of generic callback?


By strict interpretation, I presume my question is that reinterpret_cast is fine, since we are using a pointer that is to base to coerce back to pointer to derived, which we know it actually is. Is that the final answer?