<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/129312>129312</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[libc++] Ensure that passing predicates through `reference_wrapper` doesn't kill `desugars_to` optimizations
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++,
performance
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ldionne
</td>
</tr>
</table>
<pre>
We do that in e.g. `ranges::contains` where we pass a `reference_wrapper` to the projection to `ranges::find`. Does that turn off optimizations?
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0kc2K5SwQhq_GbKRDrEQ9Wbjo_s6XW5hlY2KZOGM0qOnDzNUPpg_MDwwIQvHWQ_G8Ome3BkRF-Bvh90afZYtJeeNiCNjM0XxXX5CaSMumC3WBYru2lIgu6bBiJv0r6V-XGIp2IRPR0ceGCekD6aFzpvqKosWEYcH3R9LHganmSkUiPVL8iktxMdTJX1zrgiGia-k9Yv68oJwp0GgtjUdxu_uh62om_dQY1ZuxH3WDismhk1Lym2g2xWcmeybtPONNiN7ym7XAxThaCdqgbJyCDngHcAPGxkG07MbZAkKyzgxCioEMHe7a-db7j72NaW1czicqBmPPoPF6Rp8vgwDezQuBt-sBgf8IwIHJxrTrsGCd8XuTVCW9zOeaydB5l0v-xS6u-KuP31D8Tv8P-Uz4KaGqdWGlR0LjFl0uOSme6_ZP3SZiDgRkod-c9zVmMJ-rTvm9xBr4w2dzJq-2Uo6rCJgITKsr2zm3S9wJTPXY5_fybJDAdFnJBKanmA8FPwMAAP__zMXD9A">