<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/154783>154783</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[libc++] Clean up instances of `_LIBCPP_COMPRESSED_PAIR` and `_LIBCPP_COMPRESSED_TRIPLE` in type erased wrappers
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
philnik777
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ldionne
</td>
</tr>
</table>
<pre>
We believe that we can change the layout of type erased wrappers without breaking their ABI, since we'd be introducing a new vtable. That would allow cleaning up lots of complexity in `shared_ptr` and `packaged_task` for example.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxskU9r4zAQxT-NfBkaFNnyn4MPTdpAoMuGtrDHMJamtjaKZCQ5ab79olDYHgoCwdN7muH3MEYzOqKeyQ0TYp6MdebUNA0TgsmnApc0-dBbbbxzVAxe3_o_BANZQxeCNGGCK4FCB2pCN2aJwOLNLwn8B6TbTEABI2m4BpxnChGuJk35fQiEJ-PGnDEBHjd7JrYQjVMEV2Ki0TAQGJeC14vKRgRHV7gkHCyt4P0-3S9WA1rrr6Asocu-ZQbrU8wbKH-eLX2adAPjgNU8ThhIH-cUWM0Bnc7ijOqEI-ljwnjK-ocPQJ-Ys6tC96Xuyg4L6teNlE3blV1dTD1Wg6hQtbKispXthyJOrdQdH0RblWsqTC-4kLwV67Vc12W9ki2vRcmbriIqW96xitMZjV1ZezmvfBgLE-NC_VpWTVsWFgey8ascawbFxOZ-7uWEPqcehmWMrOLWxBT__5NMsvdav8XkE2wzoszHuJjQKbpDYjU_vuw328PhuP396_D6_Pb2_HQ8PO5fvzH6wfH-uj-8PGePcT92XSzB9lNKc2TlIxM7JnajSdMyrJQ_M7HL635dD3Pwf0klJnZ3BpGJ3ReGSy_-BQAA__9PV9w3">