llvm/llvm-project

[Clang] Explain satisfaction failure for more type traits

Open

#141,911 opened on May 29, 2025

View on GitHub
 (20 comments) (0 reactions) (0 assignees)C++ (10,782 forks)batch import
clang:diagnosticsclang:frontendgood first issue

Repository metrics

Stars
 (26,378 stars)
PR merge metrics
 (Avg merge 1d 2h) (1,000 merged PRs in 30d)

Description

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.

Contributor guide