В соответствии со стандартом С++ a reinterpret_cast указателя T* другому указателю типа Q* может изменять или не изменять значение указателя в зависимости от реализация.
Мне очень интересно - есть ли какой-нибудь реальный пример реализации С++, где кастинг указателя на какой-то другой тип указателя с помощью reinterpret_cast изменяет указатель? Что и почему там изменилось?