C++ Logo


Advanced search

Subject: Re: [SG16-Unicode] Identifiers in C++
From: Tom Honermann (tom_at_[hidden])
Date: 2019-05-16 10:13:23

Cameron forwarded the following to me after our meeting yesterday.

C#'s grammar for identifiers is defined at the following link. 
Basically, identifiers match UAX#31 with a few additions (most of which
make sense for C++ as well).

A fun blog post exploring C# Unicode identifiers and the possibility of
character classification changing over time resides at the following link.


On 5/15/19 1:39 PM, Tom Honermann wrote:
> Thanks for bringing this to our attention.  I agree there are
> opportunities for improvement here.  I filed a new SG16 issue to track
> this.
> https://github.com/sg16-unicode/sg16/issues/48
> I encourage anyone interested in this to sign up to write a paper or
> provide additional background material in the issue (e.g., more
> history about the current list of ranges, an analysis of UAX#31 and
> its applicability to C++, etc...).
> Tom.
> On 5/10/19 12:43 PM, JF Bastien wrote:
>> Hi C++ પกٱƈѻɗﻉ ḟäṅṡ 👋!
>> The current list of valid identifier characters is pretty silly (see
>> [*lex.name <http://lex.name>*] 5.10 Identifiers or cppreference
>> summary <https://en.cppreference.com/w/cpp/language/identifiers>). It
>> allows characters such as zero-width joiner and zero-width space
>> among a few silly things (see how bad this can get
>> <https://godbolt.org/z/sBJk1k>, h/t Richard Kogelnig).
>> I asked where it came from, and IIUC John looked at Unicode and
>> cobbled the list of valid ranges manually. That ain't great.
>> Is this group interested in fixing things?
>> There's already an existing standard for this, maybe it's a thing we
>> can adopt as-is or use as a starting point:
>> https://unicode.org/reports/tr31/
>> Further, the tooling group was just talking about module names. I
>> think we should allow any valid identifier name as module name, and
>> look at how this could map to file names for a tooling TR's purpose.
>> Thanks,
>> J̙̘̗̘̟͐̀̎F͚̜͈̖͉̗̘̊
>> _______________________________________________
>> SG16 Unicode mailing list
>> Unicode_at_[hidden]
>> http://www.open-std.org/mailman/listinfo/unicode
> _______________________________________________
> SG16 Unicode mailing list
> Unicode_at_[hidden]
> http://www.open-std.org/mailman/listinfo/unicode

SG16 list run by sg16-owner@lists.isocpp.org