Тишинуша Гамимеря (spamsink) wrote,
Тишинуша Гамимеря
spamsink

Categories:

Проклятье процедурного программирования



В данном случае, об егонный комитет по стандартизации, бессмысленный и беспощадный.

Если формировать объект типа std::string посимвольно, то память будет выделяться и копироваться кусками размером 1, 2, 4, 8 и т.п. символов, что хоть асимптотически и линейно, корысти в этом мало.

Впрочем, партия об этом подумала уже давно, и в классе-шаблоне std::basic_string отродясь есть метод reserve(size_type size) - причем это единственный способ управить размером памяти для каждого объекта каждый раз явно; до введения в шаблон дополнительного параметра min_alloc со значением по умолчанию, равным 1 (и с полезным на нашей практике значением порядка сотни-двух), эти архимеды, начиная то ли со Степанова, то ли со Страуструпа, не дотумкали.

Но ладно уж это! Убило меня то, что этот несчастный метод возвращает void даже в С++11!
Т.е. еще лет 10, чтобы было эффективно, нам придется писать не как людям,
return std::string().reserve(много).assign(нечто).append(кое-что);
а как на фортране полвека назад, с переменнымя. Или изобретать собственные классы-велосипеды.

Ну тупы-ы-ы-ые! И этим людям мы доверяем придумывать языки для heavy industrial usage?
Subscribe

  • Тьюринг был северный осетин

    СЯУ, что имя Alan (тж. Allan, Allen, и пр.) - не просто омоним демонима жителя Северной Осетии-Алании, и даже не просто когнат, а целый дериват.…

  • Фоносемантическая расстыковка

    ...или семантическое насыщение на новый лад. После того, как я несколько раз произнёс про себя "глоссохронология" и "глоттолалия", я на некоторое…

  • Просто так, амбулаторное

    А вы отдавали себе отчёт, что состояние зомби - это, в сущности, состояние амбулаторной смерти?

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 45 comments

  • Тьюринг был северный осетин

    СЯУ, что имя Alan (тж. Allan, Allen, и пр.) - не просто омоним демонима жителя Северной Осетии-Алании, и даже не просто когнат, а целый дериват.…

  • Фоносемантическая расстыковка

    ...или семантическое насыщение на новый лад. После того, как я несколько раз произнёс про себя "глоссохронология" и "глоттолалия", я на некоторое…

  • Просто так, амбулаторное

    А вы отдавали себе отчёт, что состояние зомби - это, в сущности, состояние амбулаторной смерти?