Инициализация функций как auto_ptr со ссылкой на класс
Я пытаюсь понять поток кода, и я наткнулся на этот фрагмент кода в заголовочном файле
typedef std::auto_ptr<Client> auto_ptr_t;
static Client::auto_ptr_t open(const std::string& uri, const std::string& user, const std::string& pass);
Client& open();
где Client - это класс, а open - некоторая функция автоматического указателя, которая аутентифицирует ссылку клиент-сервер. Я не понимаю двух вещей
- зачем инициализировать open() как auto_ptr и что это значит?
- что сделает client& open()?
Может кто-нибудь объяснить, почему он был инициализирован таким образом