Будучи запятнанным Линком, я не хочу отказываться от него. Однако для некоторых вещей мне просто нужно использовать С++.
Реальная сила linq как пользователя linq (то есть для меня) заключается не в деревьях выражений (которые сложно манипулировать), но и в легкости, с которой я могу смешивать и сопоставлять различные функции. Существуют ли эквиваленты .Where
, .Select
и .SelectMany
, .Skip
и .Take
и .Concat
для итераторов стиля С++?
Это было бы очень удобно для всех видов кода, который я пишу.
Мне не нужны LINQ-специфики, ключевая проблема здесь заключается в том, чтобы иметь возможность выражать алгоритмы на более высоком уровне, а не для кода на С++, как С# 3.0. Я хотел бы иметь возможность выразить: "результат формируется путем конкатенации первых n элементов каждой последовательности", а затем повторно использовать такое выражение везде, где требуется новая последовательность, - без необходимости вручную (и жадно) создавать промежуточные промежуточные продукты.