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

    <tr>
        <th>Summary</th>
        <td>
            libc++: `take_view::__sentinel` has wrong `operator==`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    `take_view::__sentinel` in libc++ now defines `operator==` between `const _Iter<_Const>&` and `const __sentinel&`, but I think `operator==` should be defined between `const _Iter<_OtherConst>&` and `const __sentinel&`.
Could you confirm whether this is right or not?

*Reference*: http://eel.is/c++draft/ranges#range.take.sentinel-4

https://github.com/llvm/llvm-project/blob/8a9e2dd48d8102fdb940db87e57192e399e7e61b/libcxx/include/__ranges/take_view.h#L163-L168

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVUttuozAQ_Rp4sYKMgQAPPGSTjVRppZX2B5AvE_DWsSPbNO3f75gmbR-qrSqN7DFnOOd4PMKplyHb0sgfYXzScM2qHcY4BrBRWzCIEW2J0UJm7AcGse5KFJwQDARRdwHPo_NZdUiB5QLiFcAmUDobIhkfIiC-H_fpmFU_M7ZNhdyqD0XvkiuasT0RSyQPJM7aPn4uFWa3GIWKN0fqP-K_4wz-Ow6KjB4yutuvEi9uIVh20v5MrjMkrmQsEAyvpzkS57E1yH18_e22st0fOIEHKwFzbC2ZY7ykLrMjBoApdMDk1l3l-Sni0XM7AX6v1qRIz1Pc3W3qjwqJLrzxTTrOiyikO-PBmKf7trl49xdkohbGCdw63gNTqu5UV1J2UqKvqRJdC01b9gyqvocWtmUqTY___IyJttIsCi9yHMe7w-Pb6BQz-v1VbqsNLt2ru1wNleqrnudRRwPD-xylVnw1eDMP5OqdnT59_XzxZvj29XUIy-q7aVhZ5vMge1GxtpO0o2XDGD9By7Zt1SpB67KVMjdcgAlD1qBtZuFKVgrMs-aQ64FRxmhDy7Iuu6YtesWwiVvZSF5z7GNWUzhzbYrko3B-yv2wWhLLFBA0OsTwDvIQ9GQBVjnk50ucnR-4VCWt6nyVHlbr_wB6jylk">