From: Eric Niebler (eric_at_[hidden])
Date: 2004-05-08 05:06:21
Rainer Deyke wrote:
> David Abrahams wrote:
>>Err, this could only work if you were willing to pass the loop block
>>to the macro. Might be worth the pain, though (?)
> If you are willing to pass the loop body to the macro, you don't need the
> inner for loop at all.
That's all true, but IMO it isn't worth the pain. I'm OK with
BOOST_FOREAH being 4% slower than a hand-coded loop on average (until
compilers get better flow control analysis). In exchange, users get a
nice, first-class feel. It behaves like a new keyword instead of a
macro, which is intended.
It's certainly a judgement call, but the perf/usability trade-off was a
conscious one. The tiny perf hit seems a small price.
-- Eric Niebler Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk