https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82047
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Actually I wonder if this is due to GCC implementing a solution for http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253 The relevant rule is: "A constexpr specifier used in an object declaration declares the object as const. Such an object shall have literal type and shall be initialized." And since there are no uninitialized members of S<void> the object is indeed initialized, despite having no initializer. So I'm not sure this is a bug.