Salamandr
> Range::Repeat(fill, n - s.Length()) + s;
Repeat принимает беззнаковое число, туда надо передавать только неотрицательную длину. Поэтому при n < s.Length() произойдёт переполнение и будет строка очень большой длины. А Drop безопасен, он удаляет не больше элементов, чем там уже есть, поэтому в этом случае будет диапазон длины 0.
gammaker
> Поэтому при n < s.Length() произойдёт переполнение и будет строка очень большой
> длины.
т.е. один программист увидевший твою функцию из одной строки 15 минут не мог понять почему там Drop вместо Trunc, а другой сходу поменял на неработающий (но компилирующийся без варнингов) вариант? Нуу, неплохо.
gammaker
> причём даже не какой-то непонятный дешёвый китай, а HTC.
Считай что это одно и то же, просто без слова дешёвый. HTC вообще собирались производство смартфонов сворачивать, потому что у них с ними дела идут хреново.
> И таких людей большинство, не все же гики и программисты.
И им обязательно, позарез нужно установить твой генератор миди на телефон?
Zefick
> И им обязательно, позарез нужно установить твой генератор миди на телефон?
Его не надо устанавливать. Можно и так зайти на сайт и слушать. Я вот частицы хотел доделать на Google Play выложить. Можно сделать, чтобы их можно было на живые обои ставить, наверняка кто-нибудь захочет такое сделать.
kipar
> т.е. один программист увидевший твою функцию из одной строки 15 минут не мог
> понять почему там Drop вместо Trunc
Просто он пока не знаком с концепцией диапазонов. Её понимание - это считай уже наполовину знание моей библиотеки.
kipar
> а другой сходу поменял на неработающий (но компилирующийся без варнингов) вариант?
Ну это же C++, там опасности поджидают на каждом шагу. Своей библиотекой я не от всех его проблем оградить могу. Зато я сходу в браузере с телефона написал тут правильный и наиболее эффективный вариант, а то здесь многие приводили простыни кода с багами - либо через тормозной stringstream, который во много десятков раз тормознее моего способа.
Ладно, насчёт возможности создания идеального языка из C++ я видимо загнул. Просто видимо я эти нюансы обхожу на автомате, но нужно много опыта для его использования. Хотя можно попробовать какой-нибудь checked int сделать, но это как-то совсем перебор.
Тема в архиве.