Я использую boost :: asio, версия boost 1.71. Изначально у меня есть объект ip :: tcp :: socket, назовите его «socket». Мне нужно получить io_context, используемый этим сокетом.
В ранних версиях Boost (1.62, например) это было просто. Был метод asio :: basic_socket :: get_io_service (). Но как я могу сделать это в Boost 1.71?
Эта необходимость появилась, так как у меня есть проект, который интенсивно использует boost1.62 и повсеместно используется "asio :: basic_socket :: get_io_service ()".
Я пытался:
// сокет socket
asio::executor e = socket.get_executor();
asio::execution_context &e_context = e.context();
asio::io_context &context_instance = static_cast<asio::io_context&>(e_context);
Но это выглядит опасно и неправильно. Хотя он успешно работает.