Рабочий проект c ++ 2a имеет утилиту std::ranges::subrange
, которая позволяет распаковывать диапазоны и представления в итератор и сторож; например:
std::optional<int> foo(std::vector<int> const &v, std::size_t const n)
{
auto [it, e] = std::ranges::subrange(v | std::ranges::view::drop(n));
it = std::ranges::find_if(it, e, [](auto const i) { return i % 2 == 0; });
if (it == e)
return {};
return {*it};
}
Есть ли подобный объект в range-v3?