我下载了http库 urdl ,试图从doc(http://think-async.com/Urdl/doc/html/urdl/getting_started/setting_options_to_perform_an_http_post.html)编译示例:
#define URDL_HEADER_ONLY 1
#include <boost/array.hpp>
#include <urdl/http.hpp>
#include <urdl/istream.hpp>
int main() {
urdl::istream is;
is.set_option(urdl::http::request_method("POST"));
is.set_option(urdl::http::request_content_type("text/plain"));
is.set_option(urdl::http::request_content("Hello, world!"));
is.open("http://somehost/path");
}
编译错误:
g:\boost\boost/asio/detail/handler_invoke_helpers.hpp(37) : error C2666: 'urdl::
detail::asio_handler_invoke' : 3 overloads have similar conversions
g:\urdl\include\urdl/detail/http_read_stream.hpp(488): could be 'void ur
dl::detail::asio_handler_invoke<Function>(const Function &,urdl::detail::http_re
ad_stream<Stream>::read_handler<Handler> *)' [found using argument-dependent loo
kup]
with
[
....
环境是Win7 + VS2010,有什么想法吗?
谢谢。
最佳答案
是的,是的,在新版本中,boost添加了一个名为asio_handler_invoke
的模板函数,该模板函数与在“http_read_stream.hpp(488)”中定义的函数冲突。解决方案是注释用户定义的功能。
关于c++ - urdl编译错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24968937/