Please, check my interpretation:
ISO 9989:1999 and later says in topic 5.2.1.2:
"An identifier, comment, string literal, character constant, or header name shall consist of a sequence of valid multibyte characters."
And Annex D (normative) lists the "valid multibyte characters"
This way, identifiers like "nš" or "eⁿ" are valid... and GCC says in its documentation of -fextended-identifiers option:
"Accept universal character names in identifiers. This option is enabled by default for C99 (and later C standard versions) and C++."
But such identifiers names aren't accepted! At least, I got a compilation error... This, doesn't compile:
The only "extended" character accepted is "$", but it isn't normative (not in Annex D).Code:int nš=3;
Any thoughts?
PS: By the way... clang and Visual C++ 19 (when source-code is encoded in UTF-16LE) follows annex D!