https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121348
--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #4) > I suspect the issue is we use std::ill rather than std::uninitialized_fill . No, it's that we implement resize(n, value) in terms of _M_fill_insert which supports inserting into the middle, which *does* require assignability. But for resize(n, value) we only insert at the end. So we need to not use _M_fill_insert in resize.