Skip to content

Compile error with VS2010 and boost 1.56 #419

@rob100

Description

@rob100

Hi,
I have a problem when compiling cppnetlib 0.11 with VS 2010 and boost 1.56:

4>C:\Dev\cpp-netlib\include\boost/network/protocol/http/algorithms/linearize.hpp(143): error C2440: 'initializing' : cannot convert from 'boost::network::http::impl::port_wrapper<Tag>' to 'boost::optional<T>'
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve
4>          ]
4>          and
4>          [
4>              T=unsigned short
4>          ]
4>          Constructor for class 'boost::optional<T>' is declared 'explicit'
4>          with
4>          [
4>              T=unsigned short
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/connection/async_normal.hpp(83) : see reference to function template instantiation 'std::ostreambuf_iterator<_Elem,_Traits> boost::network::http::linearize<boost::network::http::basic_request<Tag>,std::ostreambuf_iterator<_Elem,_Traits>>(const Request &,const std::basic_string<_Elem,_Traits,_Ax> &,unsigned int,unsigned int,OutputIterator)' being compiled
4>          with
4>          [
4>              _Elem=char,
4>              _Traits=std::char_traits<char>,
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              Request=boost::network::http::basic_request<boost::network::http::tags::http_async_8bit_udp_resolve>,
4>              _Ax=std::allocator<char>,
4>              OutputIterator=std::ostreambuf_iterator<char,std::char_traits<char>>
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/connection/async_normal.hpp(79) : while compiling class template member function 'boost::network::http::basic_response<Tag> boost::network::http::impl::http_async_connection<Tag,version_major,version_minor>::start(const boost::network::http::basic_request<Tag> &,const std::basic_string<_Elem,_Traits,_Ax> &,bool,boost::function<Signature>)'
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1,
4>              _Elem=char,
4>              _Traits=std::char_traits<char>,
4>              _Ax=std::allocator<char>,
4>              Signature=void (const boost::iterator_range<const char *> &,const boost::system::error_code &)
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/connection/async_base.hpp(46) : see reference to class template instantiation 'boost::network::http::impl::http_async_connection<Tag,version_major,version_minor>' being compiled
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/connection/async_base.hpp(40) : while compiling class template member function 'boost::shared_ptr<T> boost::network::http::impl::async_connection_base<Tag,version_major,version_minor>::new_connection(boost::function<Signature>,boost::asio::ip::basic_resolver<InternetProtocol> &,bool,bool,boost::optional<std::basic_string<_Elem,_Traits,_Ax>>,const boost::optional<std::basic_string<_Elem,_Traits,_Ax>> &)'
4>          with
4>          [
4>              T=boost::network::http::impl::async_connection_base<boost::network::http::tags::http_async_8bit_udp_resolve,1,1>,
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1,
4>              Signature=void (boost::asio::ip::basic_resolver<boost::asio::ip::udp> &,std::basic_string<char,std::char_traits<char>,std::allocator<char>>,uint16_t,boost::function<void (const boost::system::error_code &,std::pair<boost::asio::ip::basic_resolver_iterator<boost::asio::ip::udp>,boost::asio::ip::basic_resolver_iterator<boost::asio::ip::udp>>)>),
4>              InternetProtocol=boost::asio::ip::udp,
4>              _Elem=char,
4>              _Traits=std::char_traits<char>,
4>              _Ax=std::allocator<char>
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/policies/async_connection.hpp(49) : see reference to class template instantiation 'boost::network::http::impl::async_connection_base<Tag,version_major,version_minor>' being compiled
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/policies/async_connection.hpp(48) : while compiling class template member function 'boost::network::http::basic_response<Tag> boost::network::http::async_connection_policy<Tag,version_major,version_minor>::connection_impl::send_request(const std::basic_string<_Elem,_Traits,_Ax> &,const boost::network::http::basic_request<Tag> &,bool,boost::network::http::async_connection_policy<Tag,version_major,version_minor>::body_callback_function_type)'
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1,
4>              _Elem=char,
4>              _Traits=std::char_traits<char>,
4>              _Ax=std::allocator<char>
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/async_impl.hpp(78) : see reference to class template instantiation 'boost::network::http::async_connection_policy<Tag,version_major,version_minor>::connection_impl' being compiled
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/async_impl.hpp(75) : while compiling class template member function 'const boost::network::http::basic_response<Tag> boost::network::http::impl::async_client<Tag,version_major,version_minor>::request_skeleton(const boost::network::http::basic_request<Tag> &,const std::basic_string<_Elem,_Traits,_Ax> &,bool,boost::network::http::impl::async_client<Tag,version_major,version_minor>::body_callback_function_type)'
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1,
4>              _Elem=char,
4>              _Traits=std::char_traits<char>,
4>              _Ax=std::allocator<char>
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/pimpl.hpp(57) : see reference to class template instantiation 'boost::network::http::impl::async_client<Tag,version_major,version_minor>' being compiled
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/facade.hpp(41) : see reference to class template instantiation 'boost::network::http::basic_client_impl<Tag,version_major,version_minor>' being compiled
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client/facade.hpp(40) : while compiling class template member function 'const boost::network::http::basic_response<Tag> boost::network::http::basic_client_facade<Tag,version_major,version_minor>::get(const boost::network::http::basic_request<Tag> &,boost::network::http::basic_client_facade<Tag,version_major,version_minor>::body_callback_function_type)'
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1
4>          ]
4>          C:\Dev\cpp-netlib\include\boost/network/protocol/http/client.hpp(35) : see reference to class template instantiation 'boost::network::http::basic_client_facade<Tag,version_major,version_minor>' being compiled
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1
4>          ]
4>          cpp-netlib.cpp(14) : see reference to class template instantiation 'boost::network::http::basic_client<Tag,version_major,version_minor>' being compiled
4>          with
4>          [
4>              Tag=boost::network::http::tags::http_async_8bit_udp_resolve,
4>              version_major=1,
4>              version_minor=1
4>          ]

I guess the problem occurs because of the changes on boost::optional in 1.56:
http://www.boost.org/users/history/version_1_56_0.html

Boost 1.55 worked fine. Thanks a lot for any help!
Regards

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions