Обновить
59

Пользователь

22
Подписчики
Отправить сообщение
Насколько я понял, речь о том, что парсить вот такое в качестве возвращаемого типа в C++ — норма: decltype(decltype(_val.func())::n + 10)::result_type, а в C# — нет
А, ну в ML-языках двоеточие потому, что запись через пробел (f x) — это применение функции (f(x))
Принято так, вроде
Да и, имхо, нагляднее, чем func. Хотя, может, и дело привычки.
Ну а шаблонный std::sort быстрее нешаблонного с компаратором вида void (*)(void const *, void const *)
C++ как квантовая физика, если думаешь, что знаешь, значит не знаешь :)
Я-то согласен, но те же рассуждения применимы и к обычным числам, где приходится почему-то знать, сколько там байт внутри. Но много ли где умолчальный Int — безразмерен? А float/double?
Ну да, умолчание в C++ — это дефолтная локаль, которая не факт что utf8 (особенно в случае с windows).
Так уж и всё?
Да чего о строках говорить, когда у нас и чисел-то нет нормальных :)
> строкам и тексту уже тысячи лет
Строкам-то да, а вот компьютерам нет. А компьютеры неявно тут очень даже подразумеваются:

> чтоб было читаемо независимо от того, куда идет вывод и на какой системе
Вы ж не про пергамент и не про надписи на стенах, а про компьютеры.
Ну, собственно, я то и не спорю. Я как раз спорю с тем, что интуитивный способ работы хорош, ибо тут как раз абстракции протекают.
Как раз нет. Обе эти строки — одно и то же слово, и в нём одна и та же третья буква — «e». А вот если взять другой язык, где есть буква "æ", то это будут разные слова, а посему операция взятия n-ой буквы должна ещё и культуру принимать.
æ — это две буквы (или одна, смотря какой язык), но code point в данном случае — один, хотя опять же, ту же «й» можно выразить двумя code point'ами. Операция индексации ж должна корректно взять третью букву в слове «май», даже если «й» там из двух «символов».
Я ссылался на этот комментарий.
Во втором примере вы показали, что оно — не работает, а про сравнение я и не спрашивал.
А они где-то работают? Например лигатура ае может быть как одной, так и двумя буквами в зависимости от языка. И как взять в слове vae третью букву?
Достаточно искать и вставлять подстроки, а не символы, тогда будет работать
Да даже при обычном поиске встают вопросы. «ёлка» и «елка» — разные слова? Думаю, в других языках есть примеры похлеще.
А зачем при поиске и замене в UTF8 нужно знать, что символ может состоять из нескольких байт? Поиск и замена подстрок к этому нечувствительны.
Я писал на C++, теперь на C++ и Haskell, но отчего-то боли не ощущаю :)
А вы про какую строгость говорите?
Мне сложно сказать, потому что я понимал, о чем речь, до ваших объяснений, но, как мне кажется, основная претензия не к самому подходу «плохое должно выглядеть плохо», а к конкретному выбору того, что считать плохим. Ни в C++, ни в Хаскеле, ни много где ещё нет проблемы написать вставку в середину массива, т.е. если уж сильно надо, можно написать красиво. Это приводит реально к каким-то серьёзным проблемам? Если да, то было бы замечательно увидеть примеры и какую-либо статистику, а так это звучит несколько безапелляционно. Ну т.е. проблема в подаче и восприятии. Если подать как «авторы [языка] считают, что это решение оправдано», то это одно, а если «это будет хорошо в long term» без внятного ответа на вопрос «почему», то в купе с холиварным несколько стилем это и приводит к соответствующему стилю обсуждения.

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность