[#] Элементы функционального программирования в C++: композиции отображений
habrabot(difrex,1) — All
2017-05-16 15:30:04


<>

Стандартная библиотека языка C++ очень неплоха. Долгие годы стандартные алгоритмы верой и правдой служат простому плюсовику!



Но вся отрасль бурно развивается, и язык C++ вместе с ней. Уже давно люди стали понимать, что как бы хороши ни были стандартные алгоритмы, у них есть большой недостаток: нулевая компонуемость. Иначе говоря, невозможно без дополнительных сложностей объединить в цепочку несколько алгоритмов преобразования, фильтрации, свёртки и т.д. и т.п.



Существует несколько вариантов решения данной проблемы. Один из них — [ленивые вычисления и диапазоны][1] — уже на подходе к стандартной библиотеке.



Однако, и старые добрые алгоритмы пока рано списывать со счетов.



В этой статье я хочу рассмотреть один из приёмов, который хоть и не является полноценным решением проблемы компонуемости алгоритмов, но вполне способен и упростить работу со старыми стандартными алгоритмами, и обязательно пригодится для работы с грядущими версиями стандарта языка C++.

[Читать дальше →][2]

[1]: https://github.com/ericniebler/range-v3
[2]: https://habrahabr.ru/post/328624/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut