libstdc++'s implementation diagnoses these with hard errors: std::invocable<Ts...> is IFNDR whenever std::is_invocable<Ts...> is IFNDR, which happens whenever any of the Ts... are not "complete types, cv void, or arrays of unknown bound." In particular, arrays of known bound of incomplete element types are bad — but references to such arrays are perfectly fine, so that's the fix here.
Details
Details
- Reviewers
jwakely ldionne Mordante - Group Reviewers
Restricted Project - Commits
- rG5a3c27636569: [libc++] [test] Remove IFNDR uses of std::invocable.
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
If this is IFNDR and we are able to diagnose it, why don't we do like libstdc++ and add a test for this implementation-specific diagnostic in test/libcxx?