Boost logo

Boost :

Subject: Re: [boost] [generic] status?
From: lcaminiti (lorcaminiti_at_[hidden])
Date: 2012-05-06 19:20:16

Dave Abrahams wrote
> on Sat May 05 2012, lcaminiti <> wrote:
>> Hello all,
>> What's the status of Matt Calabrese's Boost.Generic library?
> Whom are you asking? I wouldn't wait around for Matt to answer; sadly, I
> haven't seen him around the list in months.
>> I was looking at the similarities between Boost.Generic and
>> Boost.Contract
>> syntax, and I think the following syntax can be implemented to define
>> concepts, concepts_maps, axioms, etc
>> concept (Iterator) ( typename X ) extends( Semiregular<X> )
>> (
>> typename(MoveConstructible) reference, as typename X::reference ,
>> typename(MoveConstructible) postinc_result ,
>> requires HasDereference<postinc_result> ,
>> (reference) operator(*)(deref) ( X& ) ,
>> (reference) operator(*)(deref) ( X&& ) ,
>> (X&) operator(++)(preinc) ( X& ) ,
>> (postinc_result) operator(++)(postinc) ( X&, int )
>> )
>> )
> It looks beautiful to me!
>> More examples here (auto concepts, concept maps, axioms, etc):
> Even more so!
>> If there was real interest using this syntax to define concepts, either
>> the
>> syntax could replace the on of Boost.Generic or Boost.Contract could
>> provide
>> the syntax and then use Boost.Generic behind the scene to actually define
>> the concepts (same as Boost.Contract now does for Boost.Parameter).
>> What do you think?
> I want this yesterday. When can we review it?

I'm glad to see that there's interest.

Boost.Contract _without_ concept definitions should be ready for a review
this summer or in the fall (it's so much work!).

As for concept definitions:

Where's Boost.Generic code base? (I couldn't find it.) Is there any other
library that I can use to implement concepts in C++11 even if it requires
significant amount of boiler-plate code?

If there's already a back-end library that I can use to implement concepts
in C++11 then I "only" have to implement the syntax parsing macros and that
will take about 1 month to get a working version and a total of 3 months to
get it ready for review (beginning on 2013?). But if I have to also
implement the back-end that defines the concepts in C++11... I have no idea
how long that will take.

Boost.Generic claims to support the following (which looks pretty good to
Associate Types -- Yes
Associate Functions -- Yes
Multi-type Concepts -- Yes
Concept Maps -- Yes
Archetypes -- Yes
Concept Refinement -- Yes
Typename Deduction -- Yes
Concept-Based Overloading -- Almost


View this message in context:
Sent from the Boost - Dev mailing list archive at

Boost list run by bdawes at, gregod at, cpdaniel at, john at