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

    <tr>
        <th>Summary</th>
        <td>
            [libc++] `views::split` and `views::lazy_split` shouldn't be range adaptor closures
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc++
      </td>
    </tr>

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

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

<pre>
    See my analysis in #74961 followed by @cpplearner's https://github.com/llvm/llvm-project/pull/74961#issuecomment-1848847026.

The `views::split` and `views::lazy_split` machinery shouldn't derive from `__range_adaptor_closure`:

https://github.com/llvm/llvm-project/blob/fde04e61cb7393f0ca982d7fc905a17767d93e6e/libcxx/include/__ranges/split_view.h#L196-L197
https://github.com/llvm/llvm-project/blob/fde04e61cb7393f0ca982d7fc905a17767d93e6e/libcxx/include/__ranges/lazy_split_view.h#L439-L440

Instead they should inherit from nothing, like `views::take_while`:

https://github.com/llvm/llvm-project/blob/fde04e61cb7393f0ca982d7fc905a17767d93e6e/libcxx/include/__ranges/take_while_view.h#L135-L137

I'm unsure if other changes will be needed, beyond my test changes in #74961.



</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVM1uszgUfRqzsRKZa8CwYNFvKqSRsmv3kcGX2K2xkW2SZp5-BP1Lu-u3qhQ5EsaH8-NzZYzm5BBbUv4h5X0ml6R9aB8Szlq6x4M8yzM-Zb1X1_YBkU5XKp2012giNY4S4KJoqpyO3lp_QUX7KyUFG-bZogwOAwERqU5pjoTfEegIdCeT9NLvBz8R6Kw9v__t5uCfcEgEunmxlkC3YRPgJsYFBz9N6NIur4u6LgSDak_YPWF3r-ujRkoqdjZ42T7F7-JsTSIVo9Kpb1tW_nc9fuxPctDGYbjSqP1ilSMgElUYzBnpGPy0nj4eg3QnPEol5-TDcbA-LgFJxVbIGyI_Fttb3xPoRoWswCofesEbPrJBNjUoMQ4NK2UuRCVUw7HCFcD0w8sLgc64wS5qffRGLxLoNl3HVe1eE-CHvKl2h7wRv4Tep_c3HAve7A5FwW6N_NfFhFLRpPE9GWqcxmDSayrOJ23cicA_1Jrn7_En-YzHizb2N2b0Se42KF7uDjkXX0wgICa6uPWuUTNSnzQGOugNiF6MtbRH6hAVqtWIHq_eqbWnCWP6ePGmq19a87pmquWq4Y3MsM0FAwBesDrTrar7EkauZM2QVYqzkVdQVDJXnJWVEplpgQHPIWd5WTJW70dWQl6KslGSsZIXpGA4SWP3q6F7H07ZVuZWlIxBZmWPNm7DB2B1jMCf7QfrMArtlkK_nCIpmDUxxU-YZJLdxtbNsfL-b0fAbfF7pFtO9K3q9K3qMVuCbX98dTa9a-ab5P8DAAD__0yKs8A">