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