http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51379
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-12-01 13:20:16 UTC --- This is required by the standard. [expr.reinterpret.cast] explicitly lists all the conversion allowed by reinterpret_cast You'll get the same result from http://llvm.org/demo/ and http://www.comeaucomputing.com/tryitout/ If GCC, EDG and Clang all reject your code then your code is probably wrong.