Здравствуйте, Wody, Вы писали:
W>Возникло непонимание. Зачем указатель на новое подключение хранится в членах класса server?
Можно, конечно, хранить в completion handler. В некоторых примерах из документации Asio так и сделано.
А это:
void server::handle_accept(connection_ptr new_connection, const boost::system::error_code& e)
Лучше все же заменить на:
void server::handle_accept(const connection_ptr& new_connection, const boost::system::error_code& e)
W>Если я правильно понимаю, то connection_ptr, будучи shared_ptr<connection> не должен разрушить объект, находясь в недрах asio.
Все правильно понимаете.
W>Зачем тогда хранить указатель в членах класса? Или я неправ?
Это примеры и они ориентированы на то, чтобы показать различные варианты использования Asio.
Programs must be written for people to read, and only incidentally for machines to execute