Replace deprecated std::auto_ptr with std::unique_ptr