________________________________________ From: Boost [boost-bounces@lists.boost.org] on behalf of Steven Watanabe via Boost [boost@lists.boost.org] Sent: 14 February 2018 18:09 To: Boost Cc: Steven Watanabe Subject: Re: [boost] [yap] Review part 1: documentation <SNIP>
Positional placeholders are really only needed if you're doing lambda-like things.
I don't think that the primary library interface should directly support domain-specific uses. I also don't think requiring those who actually need this to implement it themselves is an excessive burden, as a transform that does it should be <10 lines of code. If you really feel that it's necessary to provide this, just write the transform yourself and provide it along with the placeholders.
True enough. I hesitate to remove this feature because 1) it's already in there, and no else has to reinvent it when it's needed in their code, and 2) I don't think it does any real harm. Contrast this with the implicit transforms associated with evaluate(), which I think lead to bad code.
I would be more willing to accept this in C++03 or even C++11, but this kind of usage of expression templates is largely obsolete in C++14, because we have language-level lambda expressions.
Please do NOT remove the placeholders and other things which allow a functional use case. I do not see how they prevent other use cases and I don't see why users should not have access to them. I have used these features to build the equivalent of the proto mini lambda example. Best wishes John Fletcher