This is valid, because a constexpr expression is allowed to take the value of \"a glvalue of literal type that refers to a non-volatile object defined with cons
Regarding your question about #if, it was not the intent of the standards committee to increase the set of expressions which can be used in the preprocessor, and the current wording is considered to be a defect. This will be listed as core issue 1436 in the post-Kona WG21 mailing. Thanks for bringing this to our attention!