Revert copy-and-swap to cut down on called to shared_ptr move assignment operator