Boost logo

Boost :

From: Joel de Guzman (djowel_at_[hidden])
Date: 2021-04-08 05:12:26


Hello Y'all,

Thank you all who participated in the review of Lambda2 and thank you Peter
for submitting the library.

Boost.Lambda2 is now officially accepted into Boost.

Accept: 4
Conditional Accept: 1
Reject: 1

There was initially a single reject, but was later changed to Conditional Accept with
the condition that:

---> Lambda2 provides its own placeholders instead of importing the standard ones.

The review discussion touched on these pros and cons:

Pros:
- It's simple, clean, and elegant.
- lightweight, single header dependency
- Involves less typing

Cons:
- lambda and phoenix library have much larger functionality
- For complex lambda expressions, native C++ lambdas are more "future-proof"
than boost::lambda2 expressions because you have the full range of the language available.
- Having to write using-declarations for each operator in each scope that they
are intended to be used defeats the purpose.

In the end, the pros outweighed the cons.

There was also the concern that boost::lambda2 does not and cannot do short-circuiting
of the && and || operators. I suggest writing a rationale and make it clear in the
documentation. I think this is a major flaw.

But the most glaring issue has to do with ADL: That Boost.Lambda2 defines the operators
that should belong to namespace std::placeholders. Hence, the condition that Lambda2
provides its own placeholders instead of importing the standard ones.

There were also a couple of suggested improvements. I'll leave that up to Peter to
decide whether to implement or not, since these suggestions are not conditions
for acceptance.

Again, thank you very much everyone, and thank you Peter for submitting this
splendid library.

Regards,

-- 
Joel

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk