use auto_ptr