On Tue, Feb 13, 2018 at 10:54 PM, Barrett Adair via Boost < boost@lists.boost.org> wrote:
On Mon, Feb 5, 2018 at 9:53 AM, Louis Dionne via Boost < boost@lists.boost.org> wrote:
[snip] Thanks for reviewing, Barrett!
My only comment on the implementation is a minor usability note - a recurring point of frustration for me was that gcc 7.2 errors print expr_kind template value parameters as integer values instead using enum member names, e.g. `meow_expr<(boost::yap::expr_kind)18, boost::hana::tuple<meow>>`. This adds a layer of mental indirection when debugging an expression tree. A very small nice-to-have, if nothing else, would be to assign explicit enum values in boost/yap/algorithm_fwd.hpp for faster cross-referencing.
Simple enough. Done.
* Documentation
...can never be good enough, but I'm happy with this. It's pleasantly concise, and it seems complete. I'm confident that I could become proficient with Yap given what is available here.
I do think the docs would benefit from the following: * less nesting of sections * a link to Zach's C++Now talk (if the talk still reflects the code, that is)
I fear this will be a lot less relevant in a week or so.
* more examples, as always
Any suggestions?
* Some sections could be merged, such as "operators" and "operator macros", also the transform sections
I have them separate only because I don't want to overload the reader with too much detail (the macros part) too early. Would it be sufficient to add cross-links between the two sections? For the same reason, I'm moving "Printing" to the very end. Not sure why it was in the middle there.
* The "operator macros" section would benefit from having the expr_kind names listed nearby
This documentation appears to cater to Proto alumni, which is fine, but an "Intro to Expression Templates" section would be nice for newcomers. A "Suggested reading" section would also be a cheap way to improve accessibility. Smoothing out the cliff-shaped learning curve of this library is a daunting task, but it might be worthwhile in the long run.
I'll add this. I was a little surprised at the lack of familiarity with expression templates, even at C++Now. *TODO* Zach