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

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
All traits of kind C currently reject T[] and T[1], but should accept them.
That applies to:

__is_empty
__is_polymorphic
__is_abstract
__has_virtual_destructor

These should accept Incomplete[] and Incomplete[1] and just return false.

It's possible that the non-standard "__has_xxx" traits should also be of kind
C, e.g. __has_trivial_assign(Incomplete[]) could be false, because arrays
aren't assignable. But I don't really care about those ones, because the
library doesn't use them (only __has_trivial_destructor, which is used for
std::is_trivially_destructible, but the library can ensure we never use it with
arrays, if necessary).

Reply via email to