
On Thu, Sep 27, 2012 at 12:48 PM, Matt Calabrese <rivorus@gmail.com> wrote:
On Thu, Sep 27, 2012 at 3:32 PM, Lorenzo Caminiti <lorcaminiti@gmail.com>wrote:
I will definitely take a look at your code
As a warning, I hope by looking at my code you don't mean looking at it's implementation, heh.
Yes, I meant the impl also but don't worry, I understand it's a work-in-progress.
A lot of the preprocessor stuff is somewhat of an undocumented mess and I had to hand-roll many macros as it was developed before VMD existed and before Boost.Preprocessor were updated for variadics. A lot of the low-level backend preprocessor stuff is also very old and stems from a time before I understood how to make good use of the preprocessor.
I'd probably be more interested in the part of the impl that expands the macro code to implement concepts, not necessarily the pp stuff.
If I continue development, I'm probably going to rewrite a lot of the low-level stuff, hopefully even sharing some of your contract code, as I imagine there are a lot of similar ideas between the libraries. I'd also really like to experiment with getting rid of some of the parentheses, as you and I talked about last year.
It might help to start by taking a look at contract/detail/preprocessor/traits/. Also, this is a possible syntax I had in mind for C++0x concept definitions: http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_...
At this point, though, I'm not sure anyone is going to be interested in seeing Boost.Generic given that the new C++1y concepts are so different.
I can't speak for this yet because I'm just now looking into C++1y concepts. Thanks. --Lorenzo