
On Thu, Sep 27, 2012 at 2:09 PM, Matt Calabrese <rivorus@gmail.com> wrote:
On Thu, Sep 27, 2012 at 4:00 PM, Lorenzo Caminiti <lorcaminiti@gmail.com>wrote:
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_...
Looks great. I'll probably do most of that eventually, but I'd like to save those changes for later, since what is in currently works and I'd rather focus on new features first before I overhaul the interface.
Makes sense. Also be careful that Boost.Contract increases compilation times x30!! Essentially the lib does the following steps (1) macros parse the syntax (pp), (2) macros expand code that implements the contracts (pp), (3) the expanded code (there's a lot of template meta-programming here) is compiled (compiler). I don't know how the x30 is distributed between (1), (2), and (3) (I still have to analyze and optimize that) but if you were to adopt the syntax you'll start paying the overhead that comes from (1)--(2) and (3) instead will be specific to your lib. --Lorenzo