I would like to point out that afaik, although a rare event, the uppercase property of codepoints is not guaranteed to be stable and can change in either way from one Unicode version to the next.

On Mon, Oct 28, 2019, 18:32 JF Bastien <cxx@jfbastien.com> wrote:
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
_______________________________________________
SG16 Unicode mailing list
Unicode@isocpp.open-std.org
http://www.open-std.org/mailman/listinfo/unicode