Здравствуйте, andyp, Вы писали:
df>>Причем хотелось _бы_ именно _готовое_ решение. Потому как понятно, что _руками_ красоту можно навести. Т.е. вполне можно было бы написать такой враппер:
df>>df>>auto r = GetData() | holder | boost::adaptors::transformed([](auto& i) {return i * 2; })
df>>
df>>если бы было готовое в рамках того же буста, к примеру, то почему бы не воспользоваться.
A>На сколько понял, по факту тебе требуется нечто типа позднего связывания range и последовательности, чтобы иметь возможность определить алгоритм обработки элементов диапазона заранее, а затем в месте вызова связать его с контейнером или другим range. Не уверен, что требуемый адаптер существует в boost.
Скорее применение адаптеров к rvalue.
Основной смысл вопроса был в том существует-ли что-либо
готовое. Нет, понятно.
А все остальное, повторюсь, "овчинка выделки не стоит". Ну или академический интерес (тоже хорошо).
Вы правильно сказали, писать враппер только для того, чтобы скрыть в нем холдер (вектор)... не уверен.
A>A>auto r = make_unbound_range() | boost::adaptors::transformed([](auto& i) {return i * 2; });
A>std::vector<int> doubled;
A>boost::push_back(doubled, r | bind_range(getData()));
A>
A>Можно ли это прикрутить малой кровью, я не знаю
Может Евгений что скажет.