Это в стандарте UTF8 длина символа может быть хоть 100 байт. В UTF32 длина символа жестко задана 4 байтами. Соответсвенно он не может представить те символы которые может представить UTF8.
[snapback]937[/snapback]
ОК. я неправильно прочитал исходную фразу.
Произвольный доступ на чтение есть свойства внутренней реализации класса.
Разработчики просто оставили его доступным для ужеров этого класса. Авось пригодится. Главное это то, что доступ на запись ограничен. А читать строку вы можете как хотите.
[snapback]937[/snapback]
так тот факт, что на разных кодировках одни и те же операции имеют разную временнУю сложность - это настоящая проблема.
и если программа работает со строками в стиле char a = s[12345], то у неё будут большие проблемы с переносимостью на utf-8. и то, что доступ на запись ограничен, при этом совершенно не принципиально.
Нмм... Какой смысл читать стандарт на язык программирования. Читать нужно мануал на компилятор которым пользуетесь. А его описание обычно идет в поставке с компилятором. Или Вы разработчик компилятора?
[snapback]937[/snapback]
гм... а переносимость? иногда она нафиг не нужна, но бывает полезна.
кроме того, стандарт именно C++ - весьма неплохо написан.
я когда плотно писал под STL, писал как раз со стандартом под рукой, и не пожалел, что использовал его (раньше смотрел в MSDN, получалось хуже).
и вообще, в мануалах на компиляторы многие тонкости не описаны. а в C++ этих тонкостей - как грязи

спорное преимущество.
линух? использующий винду? нет проблем с переносом файлов из системы в систему?
не смешите мои тапочки 
[snapback]937[/snapback]
это, между прочим, я писал

там ещё дальше самое главное было, про фтп.
Я не говорю что виндовозная кодировка такая хорошая и панацея. Я лишь предлагаю обсудить пути решения возникшей ситуации когда для русского я зыка существует 5 кодировок из которых только одна (виндовозная) используется на 99% компьютеров. И разумным выходом было бы использование уникода.
[snapback]937[/snapback]
ничего вообще не имею против уникода.
просто кучу программ ещё надо допинывать и допинывать.
а ещё тут сразу начинают кричать, что кои8 отстой и её надо отменить. да ничем она не хуже, чем 1251. даже лучше. на ней хотя бы (при сегодняшних реалиях) можно делать фтп-серверы

а 1251 соблазняет к написанию программ, которые неправильно работают с национальными символами.
Во первых стандарт к которому рано или поздно перейдет таже микрософт, во вторых в ней учтен опыт предыдущих багов.
Микросовт уже лет этак 5 назад сказала, что отказывается поддерживать в своих системах консольные приложения.
[snapback]937[/snapback]
не знаю. может, конечно, это и так. не слышал. но в таком случае на хрена они сами добавили в xp такую кучу консольных приложений, что просто ваще... сетевые интерфейсы теперь можно из батников поднимать, как в любом юниксе. кучу всего другого делать. более того, в недрах их хелпа это подробно описано.
И если вы их используете это целиком ваши проблемы. Консоль оставлена для системных нужд. А все системные нужды обслуживаются на английском. Простой юзер туда не полезет, а админ знает английский.
К тому же 866 кодировка ИБМовская а не мирософтовская.
[snapback]937[/snapback]
какая разница чья? дело-то в том, что она до сих пор используется в микрософтовских же продуктах.
более того. делаем, например, какой-нибудь сервис, который крутится и чего-нибудь делает, и ругается, если что пошло не так.
логично было бы смотреть, запущен он как сервис или просто ентером как консольное приложение, и в зависимости от этого сообщения отправлять или в event log, или ещё на консоль (это элементарно удобно, потому что на консоль выводится сразу, а евентлог надо, во-первых, открыть, а во-вторых, регулярно обновлять

.
ну и натыкаемся тут же на несоответствие кодировок.
или Вы предлагаете воротить гуй для сервисов?
гм.
кроме того, консольными приложениями гораздо удобнее управлять, чем гуёвыми. их можно запускать из батника, из планировщика задач, откуда угодно. чтобы такой же управляемости добиться от гуя, нужно воротить COM-интерфейсы и пользоваться чем-нибудь вроде вижуал бейсика. приятное занятие, не правда ли? ладно ещё вижуал бейсик, его хоть заменить чем-то можно, но писать COM-серверы - тоже удовольствие ещё то
несравнимое с написанием простенького разбора командной строки.
и люди должны уметь автоматизировать выполнение своей работы, обычные пользователи, а не только администраторы. а с микрософтом странно получается: отказаться-отказались, а вменяемой альтернативы не предложили... сопоставимой по трудоёмкости.
Согласен. Это не самое хорошее решение. Однако процессор все равно сравнивает циферки, а не буковки. Если кодовая таблица отсортирована по алфавиту, она самодостаточна. Иначе вы храните еще один массив в котором хранится использемая кодовая таблица отсортированная по алфавиту. Для кои8 это нужно. Для уникода нет.
[snapback]937[/snapback]
юникод сам по себе ничем не плох. ещё программ только мало. речь идёт о том, что если не завязываться на юникод, один хрен нельзя полагаться на то, что будет одна кодировка (почти всегда, кроме ограниченного круга задач). потому что при расширении системы запросто можно натолкнуться на трудно преодолеваемые грабли.
Месье пишет программы работающие в режиме жесткого реального времени в условиях ограниченных ресурсов.
Существующий сейчас реальный и быстрый выход - отказаться от использования русского языка в таких системах.
Только вот у него есть свора бухгалтеров и других менегеров которые в англиской раскладке клавиатуры печатают по одному символу в 3 минуты.
[snapback]937[/snapback]
ой... прямо таки жёсткого? ещё и на винде?

(сужу по тому, что предлагается 1251, в этом могу быть неправ).
и вообще, интересная связка: жесткое реальное время + бухгалтеры.
P.S.: эх, ... неудобно всё-таки в форуме по сравнению с NNTP-серверами... не цитируются цитаты, из-за этого контекст теряется. не вставлять же руками...