boost — C ++ range iterator алгоритм для сбора результата

Я написал функцию для сбора результатов расширенного диапазона итератора. Вот:

template<typename Output, typename SinglePassRange>
Output collect(const SinglePassRange & rng)
{
Output r;
boost::range::copy(rng, std::inserter(r, boost::begin(r)));
return r;
}

Это довольно удобно:

return collect<std::vector<int>>(ints | filtered(even) | transformed(add1));

Это похоже на то, что действительно должно существовать уже, но я не мог найти это. (Не говоря уже о том, что было бы неплохо как-то «вывести» тип возвращаемого значения, что, скорее всего, было бы в стандартной реализации.)

Кто-нибудь знает о функции, которая ведет себя так?

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]