|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2007-03-22 16:07:22
on Thu Mar 22 2007, Daniel Wallin <daniel-AT-boost-consulting.com> wrote:
> David Abrahams wrote:
>> on Tue Mar 20 2007, "Daniel Walker" <daniel.j.walker-AT-gmail.com> wrote:
>>> These patches do not need to be applied in any particular order.
>>> Applying all three has the effect of making lazy binding behave more
>>> like the description in the documentation. I ran the Boost Parameter
>>> Library test suite and everything passed. Let me know if I've
>>> misunderstood something or if there's a better way to solve this
>>> problem or if you'd like additional documentation/tests.
>>
>> I don't have any suggestions, though maybe Daniel W. does.
>
> I think in general a better solution would be to add a member function
> to the keyword class template. Maybe:
>
> template <class F>
> ... lazy(F const& f)
> {}
As a substitute for op|| ?
I would rather call it lazy_default.
However, I think the solution is in the lambda library already:
http://boost.org/doc/html/lambda/le_in_details.html#lambda.unlambda
> And possibly change the docs to not use Boost.Lambda. We're going to
> hit the same problem with the every lambda library. Changing the
> implementation is to late for 1.34, but we should probably change
> the docs so they don't mention Lambda. The example would become:
>
> bind(std::plus<std::string>(), ref(s1), ref(s2))
>
> it's unfortunate, but not that bad IMO.
Is it better not to discuss lambda, or to mention unlambda as a way
around this problem?
-- Dave Abrahams 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