Opened 11 years ago

Last modified 11 years ago

#6402 new Bugs

boost::spirit::lazy( *X ) does not have same semantics as *X

Reported by: sairony@… Owned by: Joel de Guzman
Milestone: To Be Determined Component: spirit
Version: Boost 1.46.1 Severity: Problem
Keywords: Cc:

Description

I use a very dynamic parser where I need to inherit & parse attributes using the Nabialek trick. As the Nabialek trick sadly seems to require pointer to rules for efficiency lazy must be used to deffer the derefence. However, if the rule is lets say rule< Iterator, void( T& ) >, then it would seem it's impossible to pass T& to the rule as lazy() doesn't provide the same semantics as rule< Iterator, void( T& ) >.

Attachments (1)

minimallazy.cpp (1.2 KB ) - added by sairony@… 11 years ago.
Minimal test case for short comings of passing arguments to rules evaluated with lazy()

Download all attachments as: .zip

Change History (3)

comment:1 by Joel de Guzman, 11 years ago

Please provide a minimal test case as per: http://boost-spirit.com/home/feedback-and-support/

Also, it would be best to simply use the mailing list for support first, before adding a ticket here.

by sairony@…, 11 years ago

Attachment: minimallazy.cpp added

Minimal test case for short comings of passing arguments to rules evaluated with lazy()

comment:2 by anonymous, 11 years ago

Sorry. I've attached a minimal test case, here's a link to where the problem was discussed very briefly on the mailing list: http://boost.2283326.n4.nabble.com/Passing-arguments-to-rules-that-requires-spirit-lazy-td3390182.html .

Note: See TracTickets for help on using tickets.