Здравствуйте, greenpci, Вы писали:
G>Здравствуйте, McQwerty, Вы писали:
G>>>Во вторых, смотри char16_t и char32_t, которые были добавлены в С++11 с целью обеспечить фиксированную длину символа. MQ>>В некоторых языках есть некоторые извраты. Например для немецкого: ToUpper ("ß") == "SS".
G>Так а в чем проблема? "ß" и "SS" оба будут занимать 16 и 32 бита в char16_t и char32_t соответственно. Почему нельзя их in-place заменить?
Неа. "SS" — это два символа, т.е. 2 чара — это не компаунд, а именно что две стандартных буквы S(которые будут занимать 32 и 64 бита в втоем случае). А "ß" — один символ, один чар. И это далеко не единственный подобный изврат в юникоде. Хотя, может, С++11 умеет как-то хитро компоновать чары, что-то вроде utf-8, но не utf-8(иначе на кой хрен нужны 16 и 32 бита на чар?), но тогда работа с этим обернется адовым геморроем.
Не, ну можно воспринимать строку просто как контейнер каких-то-там байтов, которые желательно интерпритировать как строку, но в 21 веке это звучит диковато. А все из-за того, что кому-то очень хочется сэкономить на выделении памяти под модифицированную строку(вообще, имхо, строки должны быть иммутабельны, да и вообще иммутабельность желательна для подавляющего количества объектов кроме специальных случаев — решается сразу куча проблем).
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.