GeezerVison is showing github.com — Won't compile with boost 1.65.1 · Issue #785 · cpp-netlib/cpp-netlib
Won't compile with boost 1.65.1 #785
Description
Seems cpp-netlib v0.13 won't compile with boost 1.65.1
1>boost\boost/fusion/support/detail/and.hpp(22): error C2872: 'true_type': ambiguous symbol
1>boost\boost/type_traits/integral_constant.hpp(101): note: could be 'boost::integral_constant<bool,true> boost::true_type'
1>boost\boost/spirit/home/support/common_terminals.hpp(87): note: or 'boost::spirit::true_type'
1>boost\boost/fusion/support/detail/and.hpp(26): note: see reference to class template instantiation 'boost::fusion::detail::and_impl<>' being compiled
1>boost\boost/fusion/support/detail/and.hpp(36): note: see reference to class template instantiation 'boost::fusion::detail::and_impl1<>' being compiled
1>boost\boost/spirit/home/support/terminal.hpp(44): note: see reference to class template instantiation 'boost::fusion::detail::and_<>' being compiled
1>boost\boost/proto/detail/preprocessed/expr_variadic.hpp(50): note: see reference to class template instantiation 'boost::spirit::terminal_ex<Terminal,boost::fusion::vector<const T (&)[6]>>' being compiled
1> with
1> [
1> Terminal=boost::spirit::tag::lit,
1> T=char
1> ]
1>cpp-netlib\boost/network/protocol/http/server/impl/parsers.ipp(54): note: see reference to class template instantiation 'boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<T>,0>' being compiled
1> with
1> [
1> T=boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector<const char (&)[6]>>
1> ]
Compiled fine with previous versions.
Building with Visual Studio 2017 (latest, v15.3.5).
Activity
blackccpie commented on Jan 8, 2018
Hi @oleksandr-manakov,
seems that the following patch in parsers.ipp corrects the error:
BOOST_NETWORK_INLINE void parse_headers(
std::string const& input, std::vector<request_header_narrow>& container) {
//using namespace boost::spirit::qi; // COMMENT THIS ONE
u8_to_u32_iterator<std::string::const_iterator> begin = input.begin(),
end = input.end();
using namespace boost::spirit::qi; // ADD THIS ONE
typedef as<boost::spirit::traits::u32_string> as_u32_string;
parse(begin, end,
*(+((alnum | punct) - ':') >> lit(": ") >>
as_u32_string()[+((unicode::alnum | space | punct) - '\r' - '\n')] >>
lit("\r\n")) >>
lit("\r\n"),
container);
}
Regards
anonimal commented on Feb 15, 2018
Seems cpp-netlib v0.13 won't compile with boost 1.65.1
I cannot reproduce, not even with boost 1.66
$ gcc --version | head -n1
gcc (GCC) 7.3.0
$ pacman -Q boost
boost 1.66.0-1
$ mkdir build && cd build/ && cmake -D CPP-NETLIB_BUILD_TESTS=OFF -D CPP-NETLIB_BUILD_EXAMPLES=OFF ../ && make
...
$ echo $?
0
Won't compile with boost 1.65.1
Building with Visual Studio 2017 (latest, v15.3.5).
This may most-likely be MSVS-specific.
enricodetoma commented on Mar 27, 2018
I submitted pull request #832 to be able to compile with Visual C++ 2017 15.6.4.
I tested it with Boost 1.67 beta 1, but I think it should work with previous boost versions too.
Metadata
Metadata
Development
No branches or pull requestsIssue actions