<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/141911>141911</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Clang] Explain satisfaction failure for more type traits
</td>
</tr>
<tr>
<th>Labels</th>
<td>
good first issue,
clang:frontend,
clang:diagnostics
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
cor3ntin
</td>
</tr>
</table>
<pre>
Last week, we added the scaffolding for clang to explain _why_ a standard type trait is not satisfied - when used either in a `static_assert` or as atomic constraint, in `Sema::DiagnoseTypeTraitDetails` (#141238)
https://gcc.godbolt.org/z/xb7PcxzTx
So far, this has only been done for `std::is_trivially_relocatable`.
There are plenty of type traits that could benefit from additional diagnostics
https://eel.is/c++draft/type.traits#meta.type.synop
I figure adding support for more type traits (one at a time!) could be a good first issue, and it's always nice to improve our diagnostics.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxsU0FvtDYQ_TXeyygIzLIJBw6bpCtV6qHSl_tqsAeY1tjIHrLh-_WV2ahNm56QsGbee_Pew5R49ESdap5V83rAVaYQOxNi7YX9oQ92637DJHAj-lPpF7gRoLVkQSaCZHAYgrPsRxhCBOPQjyAB6GNxyB6ut2m7AkIS9BajBdkWAonIApzAB4GEwmlgsvAAt4k8rIksEMtEEdgDgjqVSVDYXDEliqJOJYQImAAlzGzABJ_yTi-ZIfs88YNmVPVZ1edXxtGHRG_bQm8Z-ZUE2aW8RuknpevqWOn6SelWlWdVnieRJeVZfVH6MhpTjMH2wUkR4qj05afSl4_-8Xfz8fPt4z7yI8CAMaPLxAkmTBC826An8mCDp_08uxB7Z8XpKpHfGZ3brpFcMCjYO1KnsrjvfJsoEmAkWBx52SAMX86XQCYUMGF1FnryNLDAEMOc7WHh4NGBvUsXNumbLiJXcFL6YpR-VvrZRhxE6UuGKO4QStczCRb7r7T5sMCd2q8w8LjGPQrZ-7QuS4iyi5xDpH_xVPopHwAFEIRnUrpSuv2bOSCMIVgYOKYcirRSviN6CyxKPyZAd8MtgWdDOVs8LzG8E4Q1fhVYwMF2tW3rFg_UVY_Hp6Y8Pbb6MHVoyVJdNc1Azak60qnSOBypMXVl2sHWB-50qZuy0W35VLWNLo7H-qSR2pNtm0Fjq44lzciucO59zjE47ES76li1VXVw2JNLe4m0_q5GK_2itN7boerzEIMX8vbbw1e7tM59jF0GfOjXMalj6ThJ-oeCsLi9uS_7fPMKv3zW7t4pNDkGMCC77NX_mXNYo-v-k3eWae0LE2alLxnr8_OwxPAHmRyRXVaOzqf8907_FQAA__8POm2p">