Сквозняк писал(а):В том случае, если данные перед сложением не конвертируются.
Строки одного типа перед сложением не конвертируются, опять же, по определению.
Сквозняк писал(а):Потому что компилятор правит алгоритм программы
Компилятор делает ровно то, о чём ты его просишь и ничего не добавляет от себя.
Сквозняк писал(а):А вдруг программа должна складывать в ansistring строки в разных, в том числе в несуществующих, кодировках?
Несуществующих кодировках, это как?
Сквозняк писал(а):Это шутка такая? В Utf-8 большинство значений массива 0..2^48 не используются! А в ansistringe используется любая комбинация байтов которую в неё можно записать. Поэтому потери при такой технологии запланированы заранее.
Сквозняк писал(а):Порча информации на ровном месте, о которой программист компилятор совсем не просил.
Строка, кроме данных, содержит идентификатор кодовой страницы, поэтому её безопасно можно конвертировать в юникод-представление. После чего такие строки складываются и делается обратное преобразование в кодировку результирующей строки. Вот на этом этапе потеря данных возможна, но (!), за это отвечает программист. Если он будет конвертировать кириллицу в латиницу, то потери будут вне зависимости от способа конвертирования. Кто в ладах с головой будет так делать?
Сквозняк писал(а):Управляющие символы очень даже нужны, а когда они пересекаются с теми символами что можно написать на клавиатуре или увидеть на экране, то происходят такие сопли как в баше, типа экранирований экранирований пробелов, наклонных чёрточек и неадекватного разбора текста.
Это, я так понимаю, претензия к стандарту Unicode?
Добавлено спустя 11 минут 55 секунд:
Mikhail писал(а):Ну не всегда нужна конвертация
Так если не нужна, кто заставляет использовать?
Mikhail писал(а):конвертация через юникод неоптимальна
Она только через юникод и оптимальна, иначе таблиц маппинга нужно будет иметь столько, что мало не покажется (в XP, доступных кодировок, примерно, 134. Если конвертировать не через юникод, то для прямого маппинга нужно почти 18 тысяч кодовых таблиц).
Mikhail писал(а):При грамотном постороении приложения строки с кодировкой просто не нужны
Я выше давал пример, где строки с информацией о кодировании самое то. Помимо этого, у строк есть такая штука, как COW, чего нет у байтовых массивов, и иногда это очень нужная фича.
Mikhail писал(а):Это несколько облегчает написание спагетти-кода, поэтому это вредное нововведение.
Спагетти-код провоцирует событийное программирование, а отнюдь не encoding aware строки.