On Mon, 9 Mar 2026 at 18:39, Jonathan Wakely <cxx@kayari.org> wrote:


On Mon, 9 Mar 2026 at 18:01, Halalaluyafail3 <luigighiron@gmail.com> wrote:
On Mon, Mar 9, 2026 at 5:08 AM Jan Schultke <janschultke@googlemail.com> wrote:
>
> I think there's another useful guarantee that could be provided, but I'm not sure whether it should be done as part of this proposal: In any encoding, it looks like alphabetic characters always appear in their lexicographical order, even if they aren't always contiguous.
>
> Consequently, (a <=> b) is meaningful and useful between two characters if you know that a and b are letters.

Letters of the same case. To make it somewhat useful between different cases it
would require guaranteeing 'Z'<'a' or 'z'<'A' being true. Only somewhat related,
but the C++ standard does not currently have a definition of letter like C does.
Therefore it is unclear whether or not this is valid:

int main(){int _\u0393;/*reserved?*/}

There is no reason for the implementation to reserve such names. It would be a no-op to change [lex.name] to say uppercase letter from the basic character set.

We do define 'letter', in the library's [character.seq.general] subclause. But it is defined in terms of uppercase letters which still isn't defined.