【发布时间】:2015-07-08 20:22:15
【问题描述】:
我的应用程序抛出此错误:
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";
}
}
“绑定”函数如下所示:
void handle_read_content(const boost::system::error_code& err, RESTClient::response& resp){}
我的代码有什么问题?
更新:
我能够通过这些更改编译代码
【问题讨论】:
-
哪一行报错???
-
是的,但是编译器还会告诉您在您的代码中的哪个模板的哪个实例化导致了这个错误。
-
作为数据点:gcc 4.9 编译得很好。 Clang 3.5 也是如此
-
附言。这不是递归调用。 “递归”调用将来自完成处理程序。所以它真的是顺序的
标签: c++ boost visual-studio-2013