<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/102750>102750</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [libc++] Make views of segmented iterators segmented
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            metabug,
            libc++,
            performance
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          philnik777
      </td>
    </tr>
</table>

<pre>
    Many views can use the segmented iterator optimization when operating on a segmented range. We should add the necessary meta-programming to enable the optimization.

These views can probably be optimized (in no particular order):
- [ ] `filter_view`
- [ ] `transform_view`
- [ ] `reverse_view`
- [ ] `elements_view`
- [ ] `enumerate_view`
- [ ] `zip_view`
- [ ] `zip_transform_view`
- [ ] `adjacent_view`
- [ ] `adjacent_transform_view`
- [ ] `join_with_view` (Could that be a segmented range itself?)
- [ ] `as_const_view`
- [ ] `as_rvalue_view`
- [ ] `cartesian_product_view`
- [ ] `concat_view`

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMlM9u4yAQxp8GX1AjjP-kOfiwbZRbbyvtMRpgbNNisBicKn36FWm6jXYrb6UoloaP3wwzfACRHTxix5oH1uwLWNIYYjeP1nn7st1uCxXMuXsCf-Yni6_ENXi-EPI0IiccJvQJDbcJI6QQeZiTnewbJBs8fx3R8zDnJesHHjyHmz0R_IAb_gs5jWFxhoMxF6xHjUQQz3zCBHdzDEOEacqIFDh6UO49_22yDRN7Jn68__8ckfCm4DkGBcqdufqzCQ1n8t567gOfISarFweRh2gwMrlj1RV1x1nzwFmz56wVvXUJ4zGDWSu-EKQInvoQpxVNxBNGwhUFOsw9ojWJX6bc1zXMm53_s_qdcsE8g0afviP5Du85WH98tWn80OQ5PF4uQBoh5RH9c0u4TYSuZ9Uhj-aLAuiog6fVGukYT-CWtYZpiAnJgj_OMZhFr_F08Br-EhSmq8yu2kGBXbmVVSXKqhXF2IEy91L1dYXQqL5XsNW4K0GabdtqUfeF7aSQtbgvRVnXOyk2Va-aupWtKcuqaquG1QInsG7j3GnahDgUlmjBrhRy24jCgUJHFxdLmV2jloFJyeQjk9JZpZl8uPyuoRljHhN4jTnW7IvYZfKdWgZitXCWEn3mSja5yxtxg2r2_AlePlwW-i9eA_qMFUt03ZjSTNlZ8sDkYbBpXNRGh4nJQ051_WTDP6NOTB4uZyQmD9djnjr5OwAA__9AN3N0">