https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89130
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Marc Glisse from comment #3) > We already discussed this > https://gcc.gnu.org/ml/libstdc++/2018-09/msg00007.html Ah yes, I thought I remembered a slightly different discussion, but it's exactly this issue. Looking at the standard, the requirements for the push_back call in comment 0 are that X is Cpp17CopyInsertable into vector<X>, which is true. The check whether to use relocation fails if it isn't also Cpp17MoveInsertable into vector<X>, which is not a requirement. So we do need to fix it, which I've now done.