У меня возникли проблемы с определением точной семантики std::string.length(). В документации прямо указано, что length() возвращает количество символов в строке и не количество байтов. Мне было интересно, в каких случаях это действительно имеет значение.
В частности, относится ли это только к экземплярам std::basic_string<> без символов, или я также могу столкнуться с проблемами при хранении строк UTF-8 с многобайтовыми символами? Допускает ли стандарт length() поддержку UTF8?
wchar_tимеет фиксированный размер, как и любой другой тип. Это не может измениться волшебным образом. - person Lightness Races in Orbit   schedule 12.10.2011std::stringиstd::wstringи кое-что о Юникоде: stackoverflow.com / questions / 402283 / stdwstring-vs-stdstring. - person wkl   schedule 12.10.2011wstringне имеет ничего общего с UTF. Возможно, вы думали оu16stringилиu32string? - person Kerrek SB   schedule 12.10.2011