logo       

Re: Fusion-ifying proto parse trees: msg#00055

parsers.spirit.devel

Subject: Re: Fusion-ifying proto parse trees

David Abrahams wrote:
"Eric Niebler" <eric@xxxxxxxxxxxxxxxxxxxx> writes:

Every time you increment a joint view iterator, you're checking to see
if you've reached the end of the first sequence, so you know when to
start the second. And if Iterator::first_type is itself a joint view
iterator, it *also* must check to see if it's at the end of *its*
first sequence to know if it should start its second. And so on. If
you do a bunch of push_backs and end up with a joint_view of a
joint_view of a joint_view, iterating it will be far from
trivial. This sort of flattening-on-the-fly is *exactly* the problem
that non-segmented proto has, and is the problem that segmented
iterators solve.

Just to be clear, this is all compile-time cost. There's no reason
*that* has to be slow at runtime.


There actually is a runtime cost. While iterating over the first half of a joint view, you have to create new joint view iterators. Those iterators contain 1) an iterator into the first half of the sequence, and 2) the begin iterator of the second sequence. And if the first half of the sequence is also joint view ... the joint view iterators become bulky and incrementing them involves lots of copying.

--
Eric Niebler
Boost Consulting
www.boost-consulting.com


-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise