Почему нет символа символа UTF-8 в C11 или С++ 11, хотя существуют строковые литералы UTF-8? Я понимаю, что в общем случае символьный литерал представляет собой один символ ASCII, который идентичен однооктевой кодовой точке UTF-8, но ни C, ни С++ не говорят, что кодировка должна быть ASCII.
В принципе, если я прочитаю стандартное право, нет гарантии, что '0'
будет представлять целое число 0x30, но u8"0"
должен представлять последовательность char 0x30 0x00.
EDIT:
Я знаю, что не каждая точка кода UTF-8 поместилась бы в char. Такой литерал был бы полезен только для одноклеточных кодовых точек (aka, ASCII), поэтому я предполагаю, что называть его "символом символов ASCII" будет более подходящим, так что вопрос все еще стоит. Я просто решил задать вопрос с помощью UTF-8, потому что есть строковые литералы UTF-8. Единственный способ, который я могу представить, с точки зрения совместимости с ASCII-значениями, - это написать константу для каждого символа, что было бы не так уж плохо, если бы было только 128, но все же...