On 29 Jul 2014 at 13:41, Robert Ramey wrote:
of it, but it did affect me and convinced me that what we needed was more formal usage of C++ concepts and requirement that new libraries implement and document them where appropriate. I've been flogging this when/where I can - most recently in the Boost Incubator pages. So far, I haven't made much head way yet, but I'm only 66 so this won't go away for some time yet.
Everywhere I've seen Concepts used I've found it significantly worsens the documentation for them because it provides an excuse to even further scatter important information across even more pages. ASIO is a classic example here. I'm all for Concepts as in compiler enforced ones, and I'll add them to AFIO when and only when C++ gets them. But for documentation they don't help.
Looking at your documentation, I realize now that you've implemented C++ concepts under the name TypeClasses (sounds vaguely familiar from the 20 times I read the haskel book trying to figure out what a monad is). And you have fairly extensive information about what TypeClass means - it means C++ concept / type requirement. I would have much preferred that you had explicitly used boost concept check library.
No, his are much more useful and functional, unsurprising as he really pushes out constexpr and generic lambdas. And he's left the door open to eventually use C++17 concepts if I understand correctly. I think he's done great here, quite astonishing for someone without decades of experience under his belt. I certainly think his approach of benchmarking all implementation options before beginning has paid off hugely in the design. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/