Есть ли способ сделать это красиво.Когда я пытаюсь использовать Boost's to_upper()
, я получаю std::bad_cast
, поэтому я закончил примерно так:
while(str[i]!=u'\0')
{
str[i]=(char16_t)to_upper((wchar_t)str[i]);
i++;
}
Я даже не уверен, что это правильно, потому что я не знаюесли гарантируется, что to_upper
из char16_t
имеет тот же размер, что и исходный символ.И я не уверен, приведет ли это к перезаписи следующего символа или повторному чтению второй половины последнего обработанного символа.Извините за мои глупые вопросы, но у меня есть проблемы, когда речь идет о произвольном доступе и типах символов с кодировками переменной длины.