我编写了一个函数来收集boost迭代器范围的结果。这是:
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));
这似乎确实应该存在,但我找不到它。 (更不用说以某种方式“推断”返回类型会很好,这将是一个更有可能在标准实现中找到的功能。)
有没有人知道一个行为像这样的函数?