https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97198
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Hmm. It should be false for construction from no arguments i.e. __is_constructible(int[]). But thanks to parenthesized aggregate init, you can actually do: using T = int[]; T t(1); It's still true that int[] is incomplete, but in the example above you actually construct is a int[1] not int[]. I think this should be an LWG issue.