T* p = ...;
void* vp = p;
assert(static_cast<T*>(vp) == p); // (1)
assert(reinterpret_cast<T*>(vp) == p); // (2)

(1) static_cast (5.2.9)
C++03 でも C++11 でも OK 。

(2) reinterpret_cast (5.2.10)
C++03 では可能な変換として挙げられていない。
C++11 では OK 。(DR #658, #1120 による変更)


とりあえずここまでは合ってる?