I’d like to have a stronger motivation that this. Do we ever intend to use non-ascii as reserved names? If so, we should wait to resolve TR31 and not make any change because doing what you propose closes a door. If not (ie we’ll only ever use A-Z to start reserved names) then your change is exactly what we’ll want  

On Mon, Oct 28, 2019 at 9:39 AM Mathias Stearn <redbeard0531+isocpp@gmail.com> wrote:
Is it just uppercase letters in the basic source character set, or anything considered an uppercase letter in the universal character set after phase 1 transcoding and universal-character-name resolution? Or is there some other definition of uppercase?

I have a slight preference for restricting to just A-Z so that it doesn't require humans or tools to consult the unicode data tables to decide if an identifier is safe to use.

Proposed resolution:

Replace [lex.names]/3.2 with:

Each identifier that contains a double underscore __ or begins with an underscore followed by an uppercase <del>letter</del><ins>nondigit</ins> is reserved to the implementation for any use.


Alternatively we could either create a new grammar production for uppercase nondigits, or just say something like "one of the universal characters in the range 0041-005A (A-Z)"


_______________________________________________
SG16 Unicode mailing list
Unicode@isocpp.open-std.org
http://www.open-std.org/mailman/listinfo/unicode