c++ - boost 1.72 为 icmp::resolver 获取 icmp::socket io_service
问题描述
我将我的项目从 boost 1.67 更新为 boost 1.72。现在我无法编译它,因为以下原因:我有代码:
boost::asio::ip::icmp::resolver resolver(m_socket.get_io_service());
m_socket
的对象在哪里boost::asio::ip::icmp::socket
。这种情况下的编译错误如下所示:
错误 C2039 'get_io_service': 不是 'boost::asio::basic_raw_socket' 的成员
这里讨论了类似的错误,建议的解决方案是调用get_executor()
方法,然后获取执行者的上下文。所以我改变了我的代码。现在看起来像:
boost::asio::ip::icmp::resolver resolver(m_socket.get_executor().context());
但仍然得到编译错误:
错误 C2039 'get_executor': is not a member of 'boost::asio::execution_context' (编译源文件 PathMTUDiscovery.cpp) SocketsLib C:\Work\BuildFiles\boost\1.72.0\include\boost\asio\detail\ io_object_impl.hpp 87
我试图在Networking TS compatible中找到一些东西,但在这里没有找到解决方案。任何人都知道如何正确解决错误?
解决方案
推荐阅读
- python - PySpark Dataframe - 迭代窗口分区
- java - Fragment Recycle View(带卡)重复和overalped
- python - 来自网站/原始网站的 Python 正则表达式 URL,没有 Https 和 Http
- typescript - React Native with Typescript and Jest 在 0.57 更新后被破坏:找不到相对于目录的预设“module:metro-react-native-babel-preset”
- elasticsearch - Elasticsearch 搜索被勒索软件锁定
- java - 如何使内部 Java 包在 Eclipse 中可访问?
- javascript - Owl Carousel 2 - 关于触发点击事件的更改问题
- laravel - 在段落标签中显示文本框值
- python - Python matplotlib colorbars:全部在最后一个轴上
- python - 使用 BeautifulSoup 从 html 文件中提取特定文本