什么取代了 asio::tcp::resolver::query?
What replaced asio::tcp::resolver::query?
我目前正在尝试构建一个没有任何弃用方法的项目,但遇到了解析器问题。我的旧代码曾经是这样的:
const asio::ip::tcp::resolver::query query(params.host, std::to_string(params.port));
m_resolver.async_resolve(query, [&](const std::error_code &ec_, asio::ip::tcp::resolver::iterator iter) {
if (ec_) {
ec = ec_;
return;
}
while (iter != asio::ip::tcp::resolver::iterator()) {
m_socket.reset(new asio::generic::stream_protocol::socket(m_service));
m_socket->async_connect((*iter++).endpoint(), [&](const std::error_code &err_code) {
if (err_code) {
ec = err_code;
return;
}
connected = true;
});
};
});
但现在 Asio 说 asio::tcp::resolver::query 已弃用。现在主机名解析是如何完成的?
没有任何东西取代它。只需查看 documentation of [async_]resolve
中使用的内容即可:
基本上,"parameter object" 是 "inlined" 来分隔参数。
我目前正在尝试构建一个没有任何弃用方法的项目,但遇到了解析器问题。我的旧代码曾经是这样的:
const asio::ip::tcp::resolver::query query(params.host, std::to_string(params.port));
m_resolver.async_resolve(query, [&](const std::error_code &ec_, asio::ip::tcp::resolver::iterator iter) {
if (ec_) {
ec = ec_;
return;
}
while (iter != asio::ip::tcp::resolver::iterator()) {
m_socket.reset(new asio::generic::stream_protocol::socket(m_service));
m_socket->async_connect((*iter++).endpoint(), [&](const std::error_code &err_code) {
if (err_code) {
ec = err_code;
return;
}
connected = true;
});
};
});
但现在 Asio 说 asio::tcp::resolver::query 已弃用。现在主机名解析是如何完成的?
没有任何东西取代它。只需查看 documentation of [async_]resolve
中使用的内容即可:
基本上,"parameter object" 是 "inlined" 来分隔参数。