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.