Boost logo

Boost :

Subject: Re: [boost] Interest in updated expression template library?
From: Zach Laine (whatwasthataddress_at_[hidden])
Date: 2017-01-11 16:53:40


On Wed, Jan 11, 2017 at 3:03 PM, Brook Milligan <brook_at_[hidden]> wrote:

>
> > On Jan 11, 2017, at 12:11 PM, Zach Laine <whatwasthataddress_at_[hidden]>
> wrote:
> >
> > evaluate() and evaluate_as() do not take a transform. They only
> evaluate.
> > The optional params are used to supply values for placeholders.
> > transform() takes a transform though.
>
> Oops. My mistake. The links for “evaluate()” and “evaluate_as()” on the
> customization points doc page resolve to the documentation on the
> “transform()” function. I didn’t notice that discrepancy, assumed the page
> documented what the link implied, and saw the argument list. Sorry.
>

Ha! Thanks, I'll fix that.

> > Though these points are covered if you read through the examples, it
> seems
> > clear to me now that there needs to be a "Transforming and Evaluating
> > Expressions" section in the tutorial.
>
> That would be really helpful. I think much of the rest (which mainly
> includes making terminals and building expression trees using operators) is
> pretty clear, although I have not yet tried anything and may be missing
> something more (see below). The really critical part, I think, is
> understanding how to evaluate the expressions and what range of flexibility
> is possible. A section that outlines that explicitly would be great.
>
> I have not tried any of this yet because you are using constexpr-if
> statements, which are not supported by compilers I have access to just
> now. In fact, those are c++17 features, so I think the claim of c++14
> compatibility is perhaps a bit bold.
>

The use of constexpr if is guarded by a macro that is only defined if your
compiler supports that feature. The CMake scripts build some test programs
to determine this. C++14 compatibility has been extensively tested.

In general, if you use a compiler that can build Hana, it can almost
certainly build Yap too (I know of no counterexamples).

There's also explicit documentation about which compilers are supported:

https://tzlaine.github.io/yap/doc/html/boost_yap__proposed_/compiler_support.html

Zach


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