http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48531
--- Comment #11 from Daniel Krügler <daniel.kruegler at googlemail dot com> 2011-04-18 11:47:15 UTC --- (In reply to comment #10) > It is not accepted. > > I tried again to remove the special code for is_default_constructible in > <type_traits> and a number of static_asserts, all having to do with arrays > fired... I was wrong, I just notice that the FDIS wording says in regard to the expression T() in [expr.type.conv] p. 2: "The expression T(), where T is a simple-type-specifier or typename-specifier for a non-array complete object type or the (possibly cv-qualified) void type, creates a prvalue of the specified type,which is value-initialized" So, it seems that the current protection code in the library is necessary as of this wording, but I'm no longer sure that the core wording reflects the intention, because array rvalues are clearly supported.