Меня раздражает традиционный синтаксис большинства stl-алгоритмов C++; то, что их использование требует длительной записи, является лишь небольшой проблемой, но то, что им всегда приходится работать с существующими объектами, значительно ограничивает их компоновку.
Я был рад появлению диапазонов в stl; однако, начиная с C++20, есть серьезные недостатки: поддержка этого в разных реализациях стандартной библиотеки различается, и многие вещи, присутствующие в range-v3, не попали в C++20, например (к моему большому удивлению), преобразование представления в вектор (что для меня делает все это немного бесполезным, если я не могу сохранить результаты вычислений в векторе).
С другой стороны, использование range-v3 также кажется мне не идеальным: он плохо документирован (и я не согласен, что все там говорит само за себя), и, что более серьезно, идеи диапазонов в C++20 отличаются от того, что делает диапазон-v3, поэтому я не могу просто сказать: хорошо, давайте придерживаться диапазона-v3; в любом случае когда-нибудь это станет стандартом.
Так стоит ли мне вообще использовать какой-либо из двух? Или все это того не стоит и, полагаясь на диапазоны std или range-v3, мой код становится слишком сложным для поддержки и переноса?
Подробнее здесь: https://stackoverflow.com/questions/728 ... ble-at-all