Robert Ramey wrote:
One question I have:
How is boost.mustache different than https://github.com/no1msd/mstch ?
The main difference is that the proposed Boost.Mustache uses Boost.JSON for the input data, instead of rolling its own json::value. (This is not a critique of no1msd/mstch, which predates Boost.JSON and could not have used it.) (Boost.Mustache also uses Boost.JSON's storage_ptr for all its allocations.) In addition, it uses Boost.Describe to support C++ objects directly, instead of some bespoke mechanism. One downside is that boost::json::value can't hold a lambda, so lambdas are not supported. There are probably other differences as well; Boost.Mustache can take its template input in chunks, not all at once; it also passes the official Mustache test suite, which requires getting whitespace "just right", a surprisingly nontrivial undertaking. I'm not sure how no1msd/mstch fares on these criteria, as I haven't really tried it, only read the README.