Boost logo

Boost :

From: Edward Diener (eldiener_at_[hidden])
Date: 2021-03-22 08:12:08


On 3/21/2021 10:35 PM, Joel de Guzman via Boost 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?
>   - What is your evaluation of the potential usefulness of the library?
>   - Did you try to use the library? With which compiler(s)? Did you
>     have any problems?
>   - How much effort did you put into your evaluation? A glance? A quick
>     reading? In-depth study?
>   - Are you knowledgeable about the problem domain?
>
> More information about the Boost Formal Review Process can be found
> at: http://www.boost.org/community/reviews.html
>
> The review is open to anyone who is prepared to put in the work of
> evaluating and reviewing the library. Prior experience in contributing to
> Boost reviews is not a requirement.
>
> Thank you for your efforts in the Boost community. They are very much
> appreciated.
>
> Peter is often available in the CppLang Slack #boost channel should you
> require any clarification not covered by the documentation. I am not
> frequently
> available in the Slack channel, but I'll certainly pay attention to the
> discussions.
> Please don't hesitate to ping me if needed.

My first reaction, after quickly looking at the submission, is what does
this library offer that the original lambda library, which appears to
have a much larger amount of functionality than this lambda2 library,
not offer ? Also there is the Phoenix library, which also offers an even
greater amount of function object and lambda-like functionality, of
which the review manager is the main author I believe. Is it basically
so that the programmer can easily interface with the
std::bind/std::function classes with the lambda2 placeholders, whereas
the C++03 libraries don't have this possibility wit their placeholders ?

Please note that I am certainly not against adding Boost libraries that
target similar functionality. I just do not understand the motivation
for lambda2 other than that it is a C++14 library. I just did not get
what being a C++14 library, as opposed to the older C++03 libraries I
mentioned, gives the programmer who uses it. I think such an explanation
would be welcome somewhere amidst the lambda2 documentation. I also
could not decipher what in the world "All operators defined in the
subsequent sections only participate in overload resolution if at least
one of their operands is such that for its unqualified type T, the
expression std::is_placeholder<T>::value ||
std::is_bind_expression<T>::value is true" means in practical terms. I I
see no 'T' s in the subsequent sections, and am just confused.


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