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.
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. I look forward to trying this as soon as I can round up a compatible compiler. Cheers, Brook