title: split a range of numbers into several ranges with ranges-v3
body: <p>I have a certain amount of points and some tetrahedra in space and, for each point, I compute in which tetrahedron it is. Point that are not in a tetrahedron are discarded.</p>
  <pre><code>auto samplerIdAndCoarseTetra = mcSamplers 
      ranges::views::transform([&amp;coarseAABBTree](const auto &amp;mcSampler) {
          return coarseAABBTree.any_intersected_primitive(mcSampler);
      }) |
      ranges::views::enumerate | ranges::views::filter([](const auto &amp;tetrahedron) -&gt; bool {
          return std::get&lt;1&gt;(tetrahedron).has_value();
      }) |
      ranges::views::transform([&amp;coarseResCGALTetrahedra](const auto &amp;tetrahedron) {
          return std::make_tuple(
             std::get&lt;0&gt;(tetrahedron),
             std::distance(std::begin(coarseResCGALTetrahedra), std::get&lt;1&gt;(tetrahedron).value()));
      });
  </code></pre>
  <p>Now I have a ranges of a tuple of ints (one for the index of the point, one for the index of the tetrahedron). One possible result is something like this:</p>
  <pre><code>({0,4}, {1,4}, {3, 2}, {4,4},{4,2}) 
  </code></pre>
  <p>Now I want to separate the points in the tetrahedron number 4 from the points in the tetrahedron number 2. I can order the tuples so I have</p>
  <pre><code>({0,4}, {1,4}, {4, 4}, {3,2},{4,2}) 
  </code></pre>
  <p>but I still to separate this range into 2 ranges</p>
  <pre><code>({0,4}, {1,4}, {4,4}), ({4,4}, {4,2})
  </code></pre>
  <p>is it possible to achieve this using only ranges-v3? I know there is a <code>ranges::views::split</code>, but this splits on a value, and this case looks different.</p>