Boost logo

Boost :

Subject: Re: [boost] [contract] concepts: pseudo-signatures vs. usage patterns
From: Andrew Sutton (asutton.list_at_[hidden])
Date: 2012-10-12 09:25:52


> Hasn't this already been done for the STL (algorithms) by both N2914
> and N3351? If we can't settle on a couple of approaches to experiment
> with and list their advantages/disadvantages, how can we hope to ever
> get concepts standardized?

Yes, I know of published descriptions of concepts for the standard
library (n2914) and a subset of the standard library (n3351). The
standard library is expansive, but I'd like to see serious attempts at
deriving concepts for libraries outside the standard. Using C++11, of
course.

> Right now I see two ways forward:
>
> 1. I implement N3351 in Boost.Contract and Matt implements N2914 in
> Boost.Generic.
> 2. Or, I help Matt implementing N2914 in Boost.Generic (and
> Boost.Contract's requires clause will use concepts defined using
> Boost.Generic).
>
> Then we all use the lib(s) to experiment with concepts before
> (re)proposing concepts (and hopefully contracts) for standardization
> in C++1x.

Experimenting is great. This is why I have Origin
(https://code.google.com/p/origin/). I've been experimenting with
concepts-as-a-library in various forms since 2009, and it only gets
you so far. It's a very helpful if you want to develop a first pass at
concepts for a library, and sometimes it pays off if you need to
reason about some language feature interactions.

But what aspect of standardization are you hoping to influence through
your experiments?


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk