<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">