https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87658
--- Comment #2 from Filip Gawin <filip.gawin at zoho dot com> --- (In reply to ensadc from comment #1) > > dynamicParts[mf->getName()] = std::move(part); > > operator[] calls the default constructor of the mapped_type (which seems to > be `VehicleObject::Part` in this case), and since the mapped_type does not > have a default constructor, this of course fails. I don't think this is a > bug. I've badly described it. Main problem is - why ``` dynamicParts.insert({mf->getName(), {mf, normal, damage, nullptr, nullptr, nullptr, false, 0.f, 0.f, 0.f}}); std::move(part)}); ``` works in newer compilers, but not in gcc 6.x.x.