error: ‘boost::asio::ip::tcp::acceptor’ {aka ‘class boost::asio::basic_socket_acceptor<boost::asio::ip::tcp>’} has no member named ‘context’
时间: 2023-07-06 11:43:41 浏览: 299
boost asio中转服务器(TCP)
5星 · 资源好评率100%
这个错误是因为 boost 版本不同造成的。在 boost 1.70.0 及以后版本中,`boost::asio::ip::tcp::acceptor` 类已经没有 `context` 成员了,但是在旧版本中有这个成员。
解决方法是将使用 `acceptor.context()` 的代码替换成使用 `acceptor.get_executor().context()`,这样可以兼容新旧版本的 boost。具体实现可以参考如下代码:
```
boost::asio::io_context& io_context = acceptor.get_executor().context();
```
注意,`get_executor()` 方法也是在 boost 1.70.0 之后才引入的,因此需要保证代码中使用的 boost 版本支持该方法。
阅读全文