X3: compilation errors upgrading from 1.60.0 from 1.61.0

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

X3: compilation errors upgrading from 1.60.0 from 1.61.0

Peter Huene-2
When I upgraded from Boost 1.60.0 to 1.61.0, a compilation error was encountered coming from `spirit/home/x3/operator/detail/sequence.hpp`.

This repro mimics custom parsers I have to adapt Spirit.Lex to work with X3 (this was a port from an existing Spirit.Qi parser and the lexer does some complicated work, such as lexing out-of-order tokens like heredocs).  Namely, there is a "raw" parser whose job it is to consume a matching token; this parser uses `x3::unused_type` as the attribute type.

When this "unused_type attributed" parser is used in a sequence, as in the repro, the deduced attribute type for the LHS of the sequence operator appears to be incorrect in 1.61.0 and this causes a compilation error when assigning the attribute's value.

The repro (and more importantly, my real parser) compiles without error and produces the expected result in 1.60.0.

I've tracked the problem to this commit: https://github.com/boostorg/spirit/commit/a8e391bd99dddb3f9ece84bdb1bb9236b0a37cf7.  Reverting the commit locally eliminates the compilation error.

Is there something that needs to change in my implementation to make this work for 1.61.0 or is this a bug?


What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. http://sdm.link/zohodev2dev
Spirit-general mailing list
[hidden email]