On Wed, Jan 11, 2017 at 3:03 PM, Brook Milligan
On Jan 11, 2017, at 12:11 PM, Zach Laine
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... Zach