I might agree on auto but I won't agree on shared_ptr. If you can be shure that there is no memory leak just by the architecture it is easier to do changes to this code and extend it because it's more fool proof. If you delete the equipped weapon on destruction of the hardpoint there are guarenteed problems as soon as someone writes a weapon management and keeps a list of weapons somewhere else.