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