Consider:
#if 1 ? 1, 0: 3
#error
#endif
This seems to be de-jure well-formed, but implementations uniformly reject this (gcc and clang only in pedantic mode) due to a comma operator appearing in the controlling expression of the #if.
The specification status appears to be the same in C++ and C, so SG22 should offer an opinion whether it is actually a correct interpretation of the respective standard that both C and C++ reject this snippet, and if there is some appetite to rectify the specification (as opposed to fixing the bugs in the implementations).
See CWG3017 for details.
Consider:
This seems to be de-jure well-formed, but implementations uniformly reject this (gcc and clang only in pedantic mode) due to a comma operator appearing in the controlling expression of the
#if.The specification status appears to be the same in C++ and C, so SG22 should offer an opinion whether it is actually a correct interpretation of the respective standard that both C and C++ reject this snippet, and if there is some appetite to rectify the specification (as opposed to fixing the bugs in the implementations).
See CWG3017 for details.