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 <lorcaminiti-AT-gmail.com> 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
>> 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
>> syntax could replace the on of Boost.Generic or Boost.Contract could
>> 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: http://boost.2283326.n4.nabble.com/boost-generic-status-tp4611363p4613726.html Sent from the Boost - Dev mailing list archive at Nabble.com.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk