Декларация структурированной привязки диапазона в range-v3 - PullRequest
3 голосов
/ 12 апреля 2019

Рабочий проект 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?

...