Кодирование переменной длины косвенно запрещено стандартом.
Поэтому у меня есть несколько вопросов:
Как обрабатывается следующая часть стандарта?
17.3.2.1.3.3 Последовательности широких символов
Последовательность широких символов - это объект массива (8.3.4) A, который может быть объявлен как TA [N], где T - это тип wchar_t (3.9.1), необязательно квалифицируется любой комбинацией const или volatile. Начальные элементы массива имеют определенное содержимое вплоть до элемента, определенного некоторым предикатом. Последовательность символов может быть обозначена значением указателя S, которое обозначает ее первый элемент.
Длина NTWCS - это количество элементов, которые предшествуют завершающему широкому нулевому символу. Пустая NTWCS имеет длину 0.
Вопросы:
basic_string
оператор []
и что он возвращает?
Если pos
size ()
количество элементов или длину строки?
Возвращает: количество символьных объектов, находящихся в данный момент в строке.
resize ()
?
insert ()
, erase ()
и других? cwctype
cwchar
getwchar ()
, очевидно, не может вернуть весь платформенный символ, так как же это работает? Плюс ко всем остальным функциям символа ( тема та же).
Edit: Я открою награду, чтобы получить подтверждение. Я хочу получить четкие ответы или, по крайней мере, более четкое распределение голосов.
Редактировать: Это начинает терять смысл. Здесь полно противоречивых ответов. Некоторые из вас говорят о внешних кодировках (меня это не волнует, кодировка UTF-8 по-прежнему будет храниться как UTF-16 после чтения в строку, то же самое для вывода), остальное просто противоречит друг другу. : - /