On 13 Aug 2014 at 23:00, Robert Ramey wrote:
Niall Douglas wrote
So tl;dr; I am really saying the time for concepts - whatever they are to whoever's definition - isn't here yet.
I would disagree.
We know.
The whole STL library is based on "concepts". That is, all template parameter have explicit requirements. This is true now and has always been so.
No Robert, they do not. STL template parameters have informal tacit requirements based on convention. If a template parameter is called InputIterator, that implies how it's going to be used. Little explicit enforcement is done past that point, and that's a good thing.
Let's get a few concept programming libraries based on a Concepts Lite compiler around first. Let's not dig ourselves now into a straightjacket we later regret.
Concepts lite is not really relevant here. It won't change the landscape in any way.
This is a spurious claim. Not only can you simply not claim this because you don't know the future any more than I do, but the authors of Concepts Lite would disagree with you severely. Concepts Lite provides orders of magntitute efficiency improvements to type constraint programming. That surely will yield orders of magnitude more complexity in their use as we programmers like to use as much rope as is given. We simply don't know what form that will take yet, students like Louis will show us old timers just how much we didn't know.
Library authors aren't failing to explicitly define and enforce their type requirements because they lack compiler support for this. They're doing it because we don't demand that we do so.
I don't see any benefit to bringing in extra brittleness where it isn't needed. That implies the library writer preempting what users will think of doing with the library. That's a big no no for any good library design, library code is supposed to be used in surprising new ways, that's why it's a library rather than fragments of copy and paste bits. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/