|
Boost : |
Subject: Re: [boost] [Concepts] Definition. Was [GSoC] [Boost.Hana] Formal review request
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2014-08-14 07:09:17
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/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk