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.