https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49171
--- Comment #19 from Jonathan Wakely <redi at gcc dot gnu.org> --- The main reason is that reinterpret_cast subverts the type system. Constant expressions have to be free of undefined behaviour, which is impossible to do if arbitrary nonsense^W code that violates the type system is supported.