Pull to refresh

Comments 17

Фишка с reverse мне понравилась. FP-style 8)
UFO just landed and posted this here
Думаете ему бы понравилось?)
UFO just landed and posted this here
Он работает С++-программистом в фейсбуке. Так что перешел, если только духовно, да и то, похоже возращается.
Цитата:
[ тут идет код итерирующий range «от» и «до»]
Есть один минус у STL-итераторов не заметный на первый взгляд, итераторы Java этого минуса лишены.
[тут идет код итерирующий от «начала» до «конца»]

не чувствуете разницу? :) подсказка:
std::accumulate( begin(), advance( begin(), size()/2 ) );
то есть менять алгоритм вместо смены диапазона? :)
Нет. Функции Take/Skip позволяют отбросить с начала и с конца записи.
Можно сделать так:

boolinq::from(vec.begin(), vec.begin() + vec.size()/2).where(...) ....
Все гениально — просто!
*(вот теперь я понимаю, почему мой код называют сложным)
Ценю Вашу работу. Активно использую LINQ в C# и разного рода itertools/filter/map/reduce/any/генераторы списков в Python. Очень неплохо иметь похожие механизмы в С++.
На вашем месте я бы все-таки не использовал неявные конструкторы преобразования типов там, где это явно не требуется.

Например, зачем вам неявный разворот последовательности, если для этой цели предполагается использовать явную функцию reverse?

Кроме того, ваши диапазоны (***Range) невозможно нормально передать в функцию, поскольку их тип постоянно меняется (а писать всюду шаблоны — тоже не лучший выход). Хотелось бы полиморфную обертку к ним.
Тогда это уже не шаблонная библиотека получится… И скорость заметно упадёт.
Я же не говорю, что подобное будет применяться повсеместно! Когда можно обойтись шаблонами — останутся шаблоны.
Sign up to leave a comment.

Articles