Boost logo

Boost :

Subject: Re: [boost] [yap] Review part 1: documentation
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2018-02-14 18:09:21


AMDG

On 02/12/2018 09:45 AM, Zach Laine wrote:
> On Sun, Feb 11, 2018 at 5:54 PM, Steven Watanabe via Boost <
> boost_at_[hidden]> wrote:
>
>> On 02/11/2018 01:26 PM, Zach Laine via Boost wrote:
>>> evaluate() hardly qualifies as a lambda library! However, the point
>>> remains the same -- making yap::evaluate() is trivial with variadic
>>> templates, and would be necessarily limited in a C++98 library. Making
>>> such a trivial function part of the Yap library instead of asking the
>> user
>>> to reinvent that same wheel in every Yap terminal use case seems like a
>>> feature to me, not a bug.
>>>
>>
>> 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.

In Christ,
Steven Watanabe


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