https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49171
--- Comment #24 from comexk at gmail dot com --- > All that's needed for that is an extension to provide a compile-time > constant value to a pointer, not to allow arbitrary reinterpret_casts in > constexpr. Well, there aren't that many things that reinterpret_cast can do. Casting pointers to different pointer types would be useful, but using such pointers is normally undefined behavior anyway. The exception is accessing byte representations using `char *` pointers. Supporting that in constexpr context *would* be a major feature, but it doesn't need to be allowed just because the cast itself is allowed. On the other hand, C++20 is adding an alternate way to manipulate byte representations in constexpr context, std::bit_cast. (It's non-constexpr when the types involved contain unions or pointers, so it can't be used directly in place of reinterpret_cast.) Most of the work that would be needed to support access-through-`char *` as an extension needs to be done anyway for std::bit_cast; on the other hand, its existence reduces the need for an extension. Regardless, it would be nice to lift the pointer restriction on std::bit_cast as an extension.