Boost logo

Boost :

From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2021-03-26 10:16:17


On Mon, 22 Mar 2021 at 02:35, Joel de Guzman via Boost
<boost_at_[hidden]> wrote:
>
> The Boost formal review of the Lambda2, authored by Peter Dimov,
> starts Monday, March 22, 2021 to March 31, 2021 (inclusive).
>
> Documentation: https://pdimov.github.io/lambda2/doc/html/lambda2.html
> Source: https://github.com/pdimov/lambda2/
>
> Lambda2 is a simple, but functional, C++14 lambda library. It takes advantage
> of the fact that the standard <functional> header already provides placeholders
> _1, _2, _3, and so on, for use with std::bind, and function objects such
> as std::plus, std::greater, std::logical_not, and std::bit_xor, corresponding to
> arithmetic, relational, logical and bitwise operators.
>
> Please provide in your review information you think is valuable to
> understand your choice to ACCEPT or REJECT including Lambda2 as a
> Boost library. Please be explicit about your decision (ACCEPT or REJECT).
>
> Some other questions you might want to consider answering:
>
> - What is your evaluation of the design?
> - What is your evaluation of the implementation?
> - What is your evaluation of the documentation?

It is not clear from the documentation what the capture behaviour of
terminals is.
I assume it's capturing rvalues by value and lvalues by reference?

What about the expression tree itself, is it fully by value, and
therefore safely copyable?
Boost.Proto for example by default is binding everything by reference,
meaning that you couldn't even store the expression in a variable. Is
it avoiding this issue?


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