
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 Boost.Contract syntax, and I think the following syntax can be implemented to define concepts, concepts_maps, axioms, etc
CONTRACT_CONCEPT( 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): http://contractpp.svn.sourceforge.net/viewvc/contractpp/trunk/doc/html/contr...
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? -- Dave Abrahams BoostPro Computing http://www.boostpro.com