gpt4 book ai didi

c++ - 错误 C2039 : 'result_type' : is not a member of '` global namespace''

转载 作者:行者123 更新时间:2023-11-28 06:11:00 25 4
gpt4 key购买 nike

我的应用程序抛出此错误:

error C2039: 'result_type' : is not a member of '`global namespace''

对于这段代码:

void handle_read_headers(const boost::system::error_code& err, RESTClient::response& resp)
{
if (!err)
{
// Process the response headers.
std::istream response_stream(&response_);
std::string header;
while (std::getline(response_stream, header) && header != "\r")
std::cout << header << "\n";
std::cout << "\n";

// Write whatever content we already have to output.
if (response_.size() > 0)
std::cout << &response_;

(&resp)->body = "Yehey!!!";

// Start reading remaining data until EOF.
boost::asio::async_read(socket_, response_,
boost::asio::transfer_at_least(1),
boost::bind(&client::handle_read_content, this,
boost::asio::placeholders::error, boost::ref(resp)));

}
else
{
std::cout << "Error: " << err << "\n";
}
}

“绑定(bind)”函数如下所示:

void handle_read_content(const boost::system::error_code& err, RESTClient::response& resp){}

我的代码可能有什么问题?

更新:

我能够通过这些更改编译代码

enter image description here

最佳答案

根据此文档页面,ReadHandler 需要获取错误代码以及传输的字节数。

可能是 MSVC 在调用绑定(bind)表达式时对缺失的占位符更加挑剔/敏感。¹

尝试将占位符参数添加到绑定(bind):

// Start reading remaining data until EOF.
boost::asio::async_read(socket_, response_,
boost::asio::transfer_at_least(1),
boost::bind(&client::handle_read_content, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred,
boost::ref(resp)));

显然对于处理函数本身也是如此:

void handle_read_content(const boost::system::error_code& ec, size_t bytes_transferred, RESTClient::response& resp){}

更新

我付出了不合理的努力(感谢@qballer、@nab 和实时提要中的其他人!)在 Visual Studio 中重现并得到了这个:

enter image description here

郑重声明:那是

  • Win32
  • boost 1_58_0
  • openssl-1.0.2c-i386-win32
  • Visual Studio 2013 更新 4

¹ 事实上,我有时注意到 Asio 使用 GCC(我的首选编译器)接受略有不同的处理函数签名。我一直想知道这是一个功能,还是一个错误?

关于c++ - 错误 C2039 : 'result_type' : is not a member of '` global namespace'',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31279373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com