
On 03/11/09 12:07, Larry Evans wrote:
On 03/11/09 11:38, Steven Watanabe wrote:
AMDG
Larry Evans wrote:
The vault file:
http://preview.tinyurl.com/cbr9k3
demonstrates the bug. What's the correct value for the ForwardOp arg to iter_fold in http://www.boost.org/doc/libs/1_38_0/libs/mpl/doc/refmanual/fold.html? [snip] Finally, when you use a lambda expression inside another lambda expression, you need to wrap it in protect.
mpl::apply<mpl::apply<op_meta_fun_elem<_1, _2>, _1, mpl::deref<_2> >, state0, iter0>::type
is guaranteed to behave strangely, because all the placeholders will be substituted by the outermost apply.
So the documentation in fold.html should have used protect somewhere in apply<op,_1, deref<_2> >?
I think a combination of lambda<op>::type::apply<_1,deref<_2> > works, at least according to the new version of the vault file just uploaded. So, the fold.html docs are wrong and could be corrected by changing: apply<op,_1, deref<_2> > to: lambda<op>::type::apply<_1,deref<_2> > , or am I missing something else. TIA. -Larry