auto_ptr code