According to [expr.cast]/4, a C-style cast tries the following casts in order:
const_caststatic_caststatic_castfollowed byconst_castreinterpret_castreinterpret_castfollowed byconst_cast
The following cast is well-formed:
const_cast<int&>(static_cast<const int&>(0))
Yet both GCC and Clang reject the cast (int&)0. Why?