将要求传递给C ++中的方法时“未满足身体要求”(Boost Beast库)

时间:2018-08-28 15:20:43

标签: c++ boost boost-asio boost-beast

我正在尝试将请求传递给方法。我的代码是:

void handle_request(boost::beast::string_view doc_root, http::request<http::string_body> req, Send send)
{
   some code here
}

但是当我尝试编译它时,出现此错误:

  "Body requirements not met"

我该如何解决?

错误并非来自这些行,但是如果我从代码中删除函数定义,则不会显示任何错误。

还有其他一些错误来自

beast\http\message.hpp.

1 个答案:

答案 0 :(得分:0)

该消息可能是is_body概念检查的结果。

您显示的代码不会导致错误,如以下代码片段所示:

Live On Coliru

#include <boost/beast.hpp>
#include <boost/beast/http/type_traits.hpp>

int main() {
    using namespace boost::beast;

    http::request<http::string_body> req;

    static_assert(http::is_body<http::string_body>::value, "all good");
}

如果无法为您编译,则说明您的Boost源已损坏,或者您的编译器被误导了。

更有可能是您没有提及实际上触发错误的代码,或者没有编译在编辑器中看到的代码。