https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120306

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #3)
> So clang accepts it also when using libstdc++. when using libc++ clang
> rejects it due to the type trait __is_nothrow_destructible  being used with
> an incomplete type.
> 
> Simplified testcase:
> ```
> #include <concepts>
> 
> struct S;
> auto t = std::copy_constructible<S>;
> ```

GCC does reject:
auto t = std::is_copy_constructible_v<S>;

I have not looked into the definitions of the concepts vs type traits to say if
the concepts should be accepted; though I suspect it should be because of the
way concepts decay to false if there is an error in many cases.

Reply via email to