auto, shared_ptr