https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93676
--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> --- We might get away with just avoiding value-init in a template: --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -4520,7 +4520,7 @@ build_vec_init (tree base, tree maxindex, tree init, We do need to keep going if we're copying an array. */ - if (try_const && !init) + if (try_const && !init && !processing_template_decl) /* With a constexpr default constructor, which we checked for when setting try_const above, default-initialization is equivalent to value-initialization, and build_value_init gives us something more testing more...