With clang 3.7.0 this results in "constexpr function never produces a constant expression", since the C-style pointer cast is essentially a reinterpret_cast (C++14 Standard §5.4p4.4), which is not a "core constant expression" (C++14 Standard §5.20p2.13) and thus must not appear in a constexpr function: C++14 Standard §7.1.5p5:
... if no argument values exist such that an invocation of the function or constructor could be an evaluated subexpression of a core constant expression, the program is ill-formed; no diagnostic required.
clang seems to go the extra mile and produces a diagnostic.
Incidentally the pointer cast would violate C++'s aliasing rules and thus invoke undefined behavior.
Idiomatic C++ is not well defined. There are so many possible ways to write C++ code that you should be skeptical if somebody promotes one version is the true one.